使用Webpack解决require路径问题

184

我还不清楚如何使用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') 就行不通了。

我感觉有点蠢,因为我已经多次阅读文档,但感觉自己缺少某些东西。 避免写所有相对路径的../../等内容的正确方法是什么?


resolve.alias 正是您所建议的方式。我想知道它是否因为您的 resolve 配置中的其他原因而失败。我使用 alias{ mydir: path.resolve( __dirname, 'path', 'to', 'mydir' ),并且 require( 'mydir/myfile.js' ) 运行得非常好。 - sethro
11个回答

0

我不明白为什么有人建议在webpack的modulesDirectories中包含myDir的父目录,这应该很容易解决问题:

resolve: {
    modulesDirectories: [
      'parentDir',
      'node_modules',
    ],
    extensions: ['', '.js', '.jsx']
  },

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接