在Webpack 2中使用回退解决ES6导入路径

Mic*_*nov 5 webpack

我的文件夹结构如下:

- test
  - scripts
      index.js
      user.js
- default
  - scripts
      index.js
      api.js
      user.js
Run Code Online (Sandbox Code Playgroud)

我需要在本地解析导入路径("test"目录),而失败时的回退应该通过"default"目录解决.

test/scripts/index.js中的代码是:

import api from 'scripts/api'; // should be taken from 'default'
import user from 'scripts/user; // should take the local 'user.js'
...
Run Code Online (Sandbox Code Playgroud)

我正在使用具有以下配置的Webpack 2.1.0:

...
resolve: {
    modules: [
        path.resolve( './default' )
    ]
}
...
Run Code Online (Sandbox Code Playgroud)

此配置使webpack 'script/*'通过"default" 解析所有模块路径,而相对'./script/*'路径永远不会离开模块的目录,因此没有相对路径可用作回退.

resolve.fallbackWebpack 2 似乎不支持它

我试过写一个插件normal-module-factory->before-resolve,但我收到的唯一路径是入口路径.

有没有可能的配置来解决这个问题?编写自定义加载程序可能是解决方案吗?

谢谢

小智 0

你可以尝试使用这个

resolve: {
  modules: [
    path.resolve(__dirname, 'path/to/source-folder'),
    path.resolve(__dirname, 'path/to/fallback-folder'),
    'node_modules',
  ]
}
Run Code Online (Sandbox Code Playgroud)

或尝试这个插件: https://www.npmjs.com/package/webpack-fallback-directory-resolver-plugin