web-dev-qa-db-ja.com

webpackを使用してnpmパッケージサブフォルダー内にモジュールをインポートするにはどうすればよいですか?

Fooというnode_modulesにパッケージがあり、foo/moduleなどのライブラリ内のモジュールをwebpack&babel経由でインポートしたいとしましょう...

import Foo from 'foo';は動作します

import SomeOtherModule from 'foo/module';は次のエラーで失敗します。

モジュールが見つかりません:エラー:/ Users/x/Desktop/someproject/jsのモジュール 'foo/module'を解決できません

これにより、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'

};
21
glued

import 'foo/module';で動作するはずです。ファイル./node_modules/foo/module.jsまたは./node_modules/foo/module/index.jsおよびnotのようなものが解決されます(./node_modules/foo/node_modules/module/index.jsのような場合)(その場合は、npm経由でモジュールをインストールする方が良いでしょう)。

16