我有一个看起来像这样的项目:
|-- client
| |-- index.js
| |-- ...
| |-- package.json
| └-- webpack.config.json
|-- lib
| └-- myLocalLibrary
| |-- index.js
| └-- package.json
└-- server
└-- ...
通过使用npm导入库,在lib
和client
中都使用了server
中的代码
因此client/package.json
和server/package.json
包含:
{
dependencies: {
...
myLocalLibrary: 'file: ../lib/myLocalLibrary',
...
}
}
问题是:当我在客户端中运行webpack时,它无法解析myLocalLibrary
中使用的导入,原因是:
a)NPM在client/node_modules
中而不是lib/myLocalLibrary/node_modules
中为本地库安装子依赖项
b)Webpack使用其源文件夹为myLocalLibrary
解析了代码,而该代码不在client/node_modules
范围内
在这种情况下我该怎么办?
答案 0 :(得分:0)
如果您将webpack用作构建工具,我认为您必须使用resolve.alias
webpack配置。如果我们已经使用webpack将所有文件合并为一个node_modules
文件,则在生产环境中不需要entry
。
在您的webpack配置中:
module.exports = {
//...
resolve: {
alias: {
myLocalLibrary: path.resolve(__dirname, 'lib/myLocalLibrary'), // where is the webpack.config.json?
}
}
};