我仍然对如何使用webpack解析模块路径感到困惑。现在我写:
myfile = require('../../mydir/myfile.js')
但我想写
myfile = require('mydir/myfile.js')
我以为resolve.alias可能会有所帮助,因为我看到了一个类似的示例{xyz:"/some/dir"},所以可以使用它作为别名require("xyz/file.js")。
{xyz:"/some/dir"}
require("xyz/file.js")
但是,如果我将别名设置为{ mydir: '/absolute/path/mydir' },require('mydir/myfile.js')将无法正常工作。
{ mydir: '/absolute/path/mydir' }
require('mydir/myfile.js')
我觉得很笨,因为我已经阅读了很多文档,并且觉得自己缺少一些东西。避免用../../etc写下所有相对要求的正确方法是什么?
../../
一种更直接的方法是使用resolve.root。
resolve.root
包含模块的目录(绝对路径)。也可能是目录数组。此设置应用于将单个目录添加到搜索路径。
在您的情况下:
var path = require('path'); // ... resolve: { root: path.resolve('./mydir'), extensions: ['', '.js'] }
require('myfile')
要么
require('myfile.js')