使用webpack解决需求路径

我仍然对如何使用webpack解析模块路径感到困惑。现在我写:

myfile = require('../../mydir/myfile.js') 

但我想写

myfile = require('mydir/myfile.js') 

我以为resolve.alias可能会有所帮助,因为我看到了一个类似的示例{ xyz: "/some/dir" },所以可以使用它作为别名require("xyz/file.js")

但是,如果我将别名设置为{ mydir: '/absolute/path/mydir' }require('mydir/myfile.js') 将无法正常工作。

我觉得很笨,因为我已经阅读了很多文档,并且觉得自己缺少一些东西。避免用../../etc 写下所有相对要求的正确方法是什么

斯丁2020/03/20 14:05:52

如果您使用的是create-react-app,则只需添加一个.env文件,其中包含

NODE_PATH=src/

资料来源:https : //medium.com/@ktruong008/absolute-imports-with-create-react-app-4338fbca7e3d

LGil2020/03/20 14:05:52

我已经用Webpack 2解决了这个问题:

module.exports = {
  resolve: {
    modules: ["mydir", "node_modules"]    
  }
}

您可以将更多目录添加到数组...

樱前端2020/03/20 14:05:52

为了将来参考,webpack 2删除了所有内容,但将其modules作为解析路径的一种方法。这意味着root无法正常工作。

https://gist.github.com/sokra/27b24881210b56bbaff7#resolving-options

示例配置以以下内容开头:

{
  modules: [path.resolve(__dirname, "app"), "node_modules"]
  // (was split into `root`, `modulesDirectories` and `fallback` in the old options)