我有以下文件结构:
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模块。
答案 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'],
},