webpack - 在 Webpack 2 中使用后备解析 ES6 导入路径

标签 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 能够解析所有模块 'script/*'通过“默认”的路径,而相对 './script/*'路径永远不会离开模块的目录,因此没有相对路径可以用作后备。

好像是 resolve.fallback Webpack 2 不支持

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

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

谢谢

最佳答案

你可以尝试使用这个

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

关于webpack - 在 Webpack 2 中使用后备解析 ES6 导入路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744323/

相关文章:

javascript - 从导入模块中的函数返回变量

javascript - 如何在 Vue 中加载 YAML 文件?

webpack - 如何让 Webpack 转译 ES6 代码?

jQuery 未定义(使用 Webpack)

webpack - css-loader 选项中的 hashPrefix 应该如何工作?

reactjs - webpack-dev-middleware 传递所有路由

AngularJS- 使用 LazyLoad- Webpack 动态加载脚本文件

javascript - prerender-spa-plugin 在服务器上不工作

webpack - VS Code Webview Developer 工具可以处理源映射吗?

node.js - 调试 SSR node.js 服务器端 VSCode