如何使用webpack解析绝对需求路径?

eri*_*gio 6 webpack

我正在尝试将现有网站转换为使用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)

我究竟做错了什么?

Jac*_*lan 3

resolve.root 配置选项可能就是您想要的。它记录在这里:http ://webpack.github.io/docs/configuration.html#resolve-root

\n\n
\n

solve.root 包含模块的目录(绝对路径)。\n 也可以是目录数组。此设置应用于将各个目录添加到搜索路径。

\n\n

必须是绝对路径!Don\xe2\x80\x99t 传递类似 ./app/modules 的内容。

\n\n

例子:

\n\n

var 路径 = require(\'路径\');

\n\n

// ... 解析: { root: [\n path.resolve(\'./app/modules\'),\n path.resolve(\'./vendor/modules\') ] }

\n
\n