Как импортировать модуль в подпапку пакета npm с помощью webpack?

Давайте скажем, что пакет в node_modules называется foo, и я хочу импортировать модуль в библиотеку, например foo/module через webpack и babel...

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

import SomeOtherModule from 'foo/module'; не выполняется:

Модуль не найден: Ошибка: не удается разрешить модуль 'foo/module' в /Users/ х/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'

};

Ответ 1

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