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

时间:2016-08-03 12:56:08

标签: webpack

我的文件夹结构如下:

- test
  - scripts
      index.js
      user.js
- default
  - scripts
      index.js
      api.js
      user.js

我需要在本地解析导入路径(“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'
...

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

...
resolve: {
    modules: [
        path.resolve( './default' )
    ]
}
...

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

Webpack 2似乎不支持resolve.fallback

我曾尝试为normal-module-factory->before-resolve编写插件,但我收到的唯一路径是输入路径。

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

由于

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此

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

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