我想知道在Webpack 5中设置别名时是否可以使用某种通配符。
我当前的别名如下所示:
// ...
resolve: {
alias: {
'scope:a$': path.resolve(__dirname, 'node_modules/@scope/package/a'),
'scope:b$': path.resolve(__dirname, 'node_modules/@scope/package/b'),
'scope:c$': path.resolve(__dirname, 'node_modules/@scope/package/c'),
},
},
// ...
字符串
这个很好用。它目前正在阻止我的项目中的相对路径地狱。我可以汇入:
@use 'scope:a' as a;
型
而不是:
@use '../../../../../a' as a;
型
但我很想用一个化名来解决这个问题。大概是这样的:
// ...
resolve: {
alias: {
'scope:': path.resolve(__dirname, 'node_modules/@scope/package/*'),
},
},
// ...
型
此范例实作会掷回错误:
错误在...
模块生成失败...
...
Webpack的文档似乎没有提到resolve.alias
的任何可能的通配符。有人知道在Webpack 5别名中是否可以使用通配符吗?
先谢了。
1条答案
按热度按时间clj7thdc1#
正如@KarloSpacapan提到的,我们可以指定
resolve.alias
的目录路径例如:
项目结构:
字符串
让我们创建一个名为
@scope/package
的假包,其中包含node_modules
中的a.scss
、b.scss
和c.scss
文件。node_modules/@scope/package/a.scss
:型
node_modules/@scope/package/b.scss
:型
node_modules/@scope/package/c.scss
:型
src/style.scss
:型
src/index.js
:型
webpack.config.js
:型
构建日志:
型
产出
dist/main.css
:型