使用webpack和babel与父项目目录中的文件

时间:2016-05-17 08:38:23

标签: javascript webpack babeljs

我有一个像这样设置的项目,我试图从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.rootresolve.alias尝试手动解析没有嵌套路径的文件夹。使用context将项目根目录设置为外部文件夹,但它仍然选错了node_modules

如何强制webpack使用正确的node_modules文件夹?

1 个答案:

答案 0 :(得分:1)

默认情况下,webpack会在../node_modules../../node_modulesmodulesDirectories中查找。

要强制它仅使用特定目录,您可以在resolve部分中为模块module.exports = { // ... resolve: { modulesDirectories: [path.join(__dirname, 'node_modules')] } } 属性设置绝对路径:

moduleDirectories

有关{{1}} in webpack's documentation

的更多详情