TLDR
是否有一个Webpack插件允许您仅使用foo/bar/baz
引入模块require('baz')
?
展开
我刚刚遇到了Babel / NPM的一个有趣的插件:
https://github.com/CentaurWarchief/babel-plugin-global-require
这个插件让你只需要使用模块路径中最具体的部分就可以使用NPM模块。例如,如果您的文件系统具有:
src
util
foo
Bar.js
而不是:
require('src/util/foo/Bar');
你可以这样做:
require('Bar');
如果(例如)你碰巧有两个“Bar.js”文件,你可以这样做:
require('foo/bar');
这很棒......如果你使用NPM作为你的模块系统。但是我想切换到使用Webpack,所以我的问题是:我刚才描述的是否像Webpack插件一样存在?
答案 0 :(得分:3)
Webpack内置了类似功能。在您的webpack配置文件中将模块的路径添加到resolve.root数组。
resolve: {
root: [path.join(__dirname, 'src/util/foo')]
}
然后require('Bar');
在这种情况下,有多个同名文件必须将其公共父文件夹添加到resolve.root
数组。
文件夹结构:
src
util
foo
Bar.js
bar
Bar.js
Webpack配置:
resolve: {
root: [path.join(__dirname, 'src/util')]
}
然后
require('foo/Bar');
require('bar/Bar');
修改强>
使用绝对路径。感谢ErikPhipps的评论。