我试图将现有网站转换为使用webpack,但所有现有的需求路径都是绝对的:
var Component = require('/path/to/my/component');
我一直在阅读webpack documentation并找到this answer有关解决路径的信息,但却无法解决我的问题。根据上面答案中的说明设置resolve.root
时,我能够得到以下信息:
var Component = require('./path/to/my/component');
var Component = require('path/to/my/component');
但是,我仍然无法弄清楚如何让绝对路径正常工作,而我真的更愿意不必通过并更新我的所有路径。这是网站结构:
/app
/assets
/javascripts
/build
package.js
index.js
/node_modules
webpack.config.js:
var JS_ROOT = __dirname + '/app/assets/javascripts');
module.exports = {
entry: JS_ROOT + '/index',
output: {
path: JS_ROOT + '/build',
filename: 'package.js'
},
...
resolve: {
root: JS_ROOT
}
};
我不断得到的错误是:
Module not found: Error: Cannot resolve 'file' or 'directory' /path/to/component in /Users/<username>/<ProjectRoot>/app/assets/javascripts
我做错了什么?
答案 0 :(得分:3)
resolve.root配置选项可能就是你所追求的。这里记录了:http://webpack.github.io/docs/configuration.html#resolve-root
resolve.root包含模块的目录(绝对路径)。 也可以是一系列目录。应该使用此设置 将单个目录添加到搜索路径。
一定是绝对的道路!不要传递类似./app/modules的内容。
示例:
var path = require('path');
// ...解决:{root:[ path.resolve(” ./应用程序/模块), path.resolve('./ vendor / modules')]}