使用webpack 2导入公共文件夹

时间:2017-02-28 18:25:55

标签: webpack-2

我有以下文件结构:

core
.... src
........ common
............ common.js

someProject
.... node_modules
.... src
........ someModule   
............ index.js
webpack.config.js

在index.js中,我希望能够做到这样的事情:

import { bla } from 'common/common.js';

我尝试使用别名,但之后我需要在核心 someProject 中安装node_modules以使其正常工作。我只想在 someProject 中安装node_modules。

别名是正确的方法还是我需要使用不同的东西?

这是我在webpack.config.js中的解析对象:

resolve: {
    extensions: ['.js', '.jsx', '.json', '.css', '.scss'],
    modules: [
        path.resolve(__dirname, 'node_modules'),
        path.resolve('./src')
    ],
    alias: {
        common: path.resolve('../core/src/common')
    }
}

这是我得到的错误:Module build failed: ReferenceError: Unknown plugin "transform-node-env-inline" specified in "base" at 0, attempted to resolve relative to ...但是一旦我安装" transform-node-env-inline",这个错误就解决了,我得到另一个,唯一的我能够解决它的方法是安装所有npm模块。

1 个答案:

答案 0 :(得分:0)

以与src相同的方式将其设置为模块。这就是我的配置设置,这对我来说比尝试使用别名要好得多。我不认为你的node_modules在哪里都很重要,但我不完全确定,因为我已经安装在根目录中了。如果由于您设置目录的方式不起作用,我建议您只使用webpack.config.js而不是someProject内部的项目根目录中安装node_modules。我不能确定这会在没有尝试的情况下发挥作用。

resolve: {
    modules: [
        path.resolve(__dirname, '..', 'js'),
        path.resolve(__dirname, '..', 'js', 'modules'),
        path.resolve(__dirname, '..', 'js', 'components'),
        path.resolve(__dirname, '..', 'js', 'util'),
        'node_modules',
    ],
    alias: {},
    extensions: ['.js'],
},