在entry.js中包含某些文件时,设置要导入的上下文目录?

时间:2019-05-11 22:12:48

标签: javascript webpack es6-modules

在entry.js文件中,我有:
import 'index.js';

该index.js从另一个目录(例如:

import test from 'modulename'

但是我已经将所有模块移动到另一个目录,并且只想将index.js保留在主目录中。所以这就是为什么我必须用新的目录位置重写所有导入,例如:
import test from ../anotherdir/modulename

如何摆脱这种情况并强制Webpack在新目录中搜索模块?

现在我正在使用webpack allias,如果路径太长但仍需要更改所有导入,这将对我有帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用resolve alias in webpack

  

解决

     

这些选项更改了模块的解析方式。 webpack提供   合理的默认值,但可以更改解析度   详情。看看模块分辨率以了解更多有关如何   解析器正常工作。

webpack.config.js

module.exports = {
  //...
  resolve: {
    alias: {
      Utilities: path.resolve(__dirname, 'src/utilities/'),
      Templates: path.resolve(__dirname, 'src/templates/')
    }
  }
};

现在,在导入时不要像这样使用相对路径:

import Utility from '../../utilities/utility';

您可以使用别名:

import Utility from 'Utilities/utility';