2016-01-16 2 views
11

Допустим, Theres пакет в node_modules под названием Foo, и я хочу, чтобы импортировать модуль в библиотеке такой как foo/module через WebPack & Бабеля ...Как импортировать модуль в подпапку пакета npm с помощью webpack?

import Foo from 'foo'; работы

import SomeOtherModule from 'foo/module'; выдает следующее:

Module not found: Error: Cannot resolve module 'foo/module' in /Users/x/Desktop/someproject/js

Что делает создание похоже, что webpack ищет файл не в том месте, а не node_modules

Мой webpack.config выглядит следующим образом:

var webpack = require('webpack'); 
var path = require('path'); 

module.exports = { 
    entry: ['babel-polyfill','./js/script.js'], 
    output: { 
     path: __dirname, 
     filename: './build/script.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       loader: 'babel', 
       query: { 
        cacheDirectory: true, 
        presets: ['es2015'] 
       } 
      } 
     ], 
    }, 
    plugins: [ 
     new webpack.NoErrorsPlugin() 
    ], 
    stats: { 
     colors: true 
    }, 
    devtool: 'source-map' 

}; 
+0

Показать структуру файлов и папок для модуля foo, пожалуйста, –

ответ

7

Он должен работать с import 'foo/module';. Он разрешит файл ./node_modules/foo/module.js или ./node_modules/foo/module/index.js и не что-то вроде ./node_modules/foo/node_modules/module/index.js, если он ожидал (в этом случае вам лучше установить модуль через npm).

+0

Структура модуля:../Node_modules/foo/module/index.js', который не разрешает – glued

+0

Я проверил в тестовом проекте и работал, когда переименовываю ./ node_modules/foo/module/index.js ./node_modules/foo/module/index1.js, запустите webpack, он говорит: «Невозможно разрешить модуль« foo/module »в/home/user/www/so-2/js» , Итак, может быть, у вас есть опечатка в имени файла? –

+0

oh вы правы, модуль foo имеет папку 'src', поэтому' import из foo/src/module' работал благодаря – glued

Смежные вопросы