我有一个像这样设置的项目,我试图从file-a.js
开始要求file-b.js
。
project-name/
node_modules/
src/
file-a.js
tools/
tool-name/
node_modules/
src/
file-b.js
webpack.config.js
package.json
package.json
我的webpack
1.13.0配置正常工作,直到我添加babel-loader
6.2.4与babel-preset-es2015
6.6.0。然后我开始收到错误消息。
/home/dan/dev/dan/project-name/src/file-a.js中的错误 模块构建失败:错误:无法找到相对于目录“/ home / dan / dev / dan / project-name / src”的预设“es2015”
现在我预感到这种情况正在发生,因为它正在上方babel-preset-es2015
寻找package.json
。我可以通过在该级别安装它来消除此错误,但随后我收到关于babel
模块不存在的类似消息。
我尝试了各种各样的事情,将上层src
目录符号链接到内部项目中,使用resolve.root
和resolve.alias
尝试手动解析没有嵌套路径的文件夹。使用context
将项目根目录设置为外部文件夹,但它仍然选错了node_modules
。
如何强制webpack使用正确的node_modules
文件夹?
答案 0 :(得分:1)
默认情况下,webpack会在../node_modules
,../../node_modules
和modulesDirectories
中查找。
要强制它仅使用特定目录,您可以在resolve
部分中为模块module.exports = {
// ...
resolve: {
modulesDirectories: [path.join(__dirname, 'node_modules')]
}
}
属性设置绝对路径:
moduleDirectories
有关{{1}} in webpack's documentation
的更多详情