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

Dan*_*nce 6 javascript webpack babeljs

我有一个项目设立这样,我想需要file-a.jsfile-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
Run Code Online (Sandbox Code Playgroud)

我的webpack1.13.0配置正常工作,直到我babel-loaderbabel-preset-es20156.6.0 添加6.2.4 .然后我开始收到错误消息.

/home/dan/dev/dan/project-name/src/file-a.js中的错误模块构建失败:错误:无法找到相对于目录"/ home/dan/dev/dan/project的预设"es2015" -name/src目录"

现在我有预感到这种情况正在发生,因为它正在寻找babel-preset-es2015上层package.json.我可以通过在该级别安装它来消除此错误,但随后我收到关于babel模块不存在的类似消息.

我已经尝试了各种各样的东西,将上层src目录符号链接到内部项目中,使用resolve.rootresolve.alias尝试手动解析没有嵌套路径的文件夹.用于context将项目根目录设置为外部文件夹,但它仍然选错了node_modules.

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

Koe*_*en. 1

默认情况下,webpack 会查找./node_modules../node_modules../../node_modules

modulesDirectories要强制它仅使用特定目录,您可以在以下部分中为模块属性设置绝对路径resolve

module.exports = {
  // ...
  resolve: {
     modulesDirectories: [path.join(__dirname, 'node_modules')]
  }
}
Run Code Online (Sandbox Code Playgroud)

更多细节请moduleDirectories 参见 webpack 的文档