我正在尝试将现有网站转换为使用webpack,但所有现有的需求路径都是绝对的:
var Component = require('/path/to/my/component');
Run Code Online (Sandbox Code Playgroud)
我一直在阅读webpack文档,也找到了关于解决路径的答案,但却无法解决我的问题.resolve.root根据上面答案中的说明进行设置时,我能够获得以下工作:
var Component = require('./path/to/my/component');
var Component = require('path/to/my/component');
Run Code Online (Sandbox Code Playgroud)
但是,我仍然无法弄清楚如何使绝对路径工作,我真的不想不必经历并更新我的所有路径.这是网站结构:
/app
/assets
/javascripts
/build
package.js
index.js
/node_modules
Run Code Online (Sandbox Code Playgroud)
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
}
};
Run Code Online (Sandbox Code Playgroud)
我一直得到的错误是:
Module not found: Error: Cannot resolve 'file' or 'directory' /path/to/component in /Users/<username>/<ProjectRoot>/app/assets/javascripts
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
resolve.root 配置选项可能就是您想要的。它记录在这里:http ://webpack.github.io/docs/configuration.html#resolve-root
\n\n\n\nsolve.root 包含模块的目录(绝对路径)。\n 也可以是目录数组。此设置应用于将各个目录添加到搜索路径。
\n\n必须是绝对路径!Don\xe2\x80\x99t 传递类似 ./app/modules 的内容。
\n\n例子:
\n\nvar 路径 = require(\'路径\');
\n\n// ... 解析: { root: [\n path.resolve(\'./app/modules\'),\n path.resolve(\'./vendor/modules\') ] }
\n
| 归档时间: |
|
| 查看次数: |
5819 次 |
| 最近记录: |