如何在webpack中定义加载器的优先级
How to define precendence of loaders in webpack?
我使用webpack构建一个服务器构建,配置如下:
loaders: [
{
test: /'.js$/,
exclude: [/node_modules/],
loader: "babel-loader",
query: {
presets: ["es2015", "react"],
plugins: ["transform-object-rest-spread"]
}
}, {
test: new RegExp(`/
stardust
|redux-form
|axios
|shuffle
`),
loader: "null-loader"
}
]
想法很简单:如果在第二个加载器中匹配regexp,它不应该被加载。它工作得很好,直到我加载这个:
import shuffle from "shufflejs/dist/shuffle.min.js"
它同时匹配加载器和加载到bundle的加载器。如何使null-loader
优先级高于巴别塔?
你可以像webpack文档中描述的那样使用预加载器,基本上你将使用带有null-loader的regex作为预加载器,这样它将在你的加载器之前被解析。因此,如果regex匹配,将使用null-loader,它不会加载模块。
修改后的代码:
preLoaders: [
{
test: new RegExp(`/
stardust
|redux-form
|axios
|shuffle
`),
loader: "null-loader"
}
],
loaders: [
{
test: /'.js$/,
exclude: [/node_modules/],
loader: "babel-loader",
query: {
presets: ["es2015", "react"],
plugins: ["transform-object-rest-spread"]
}
}
]
我能想到的唯一解决方案是依赖正则表达式来排除包含这些单词的文件。我不是Regex的专家,但我会试着建议一个表达式:
loaders: [
{
test: /^(?!stardust|redux-form|axios|shuffle)([a-zA-Z]+)'.js$/,
exclude: [/node_modules/],
loader: "babel-loader",
query: {
presets: ["es2015", "react"],
plugins: ["transform-object-rest-spread"]
}
}
]
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何使该数据在所有元素中加载
- Chrome扩展没有't在重新加载之前考虑期权价值
- 有没有办法设置网站上图像的加载优先级
- Ajax vs图像加载优先级
- 如何在webpack中定义加载器的优先级
- AJAX加载后奇怪的CSS优先级行为