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

时间:2015-10-10 20:46:53

标签: webpack

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

我做错了什么?

1 个答案:

答案 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')]}