再开发过程中难免有时需要对所有的js文件中的某些字符串进行统一处理,l利用webpack提供的自定义loader可以在打包时统一处理
webpack.config.js中配置
rules:[
{
test: /\.js$/,
//loader: 'happypack/loader?id=happybabel',
loader: './replace-str-loader',
}
]
新建replace-str-loader模块,index.js中
module.exports = function(context){
console.log(context);
return context.replace(/console\.log\(.*?\)/g,"");//一定要renturn出去
}
app.js
console.log(2);
没有自定义loader前打包出来的app.js
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["app2"],{
/***/ "./app.js":
/*!*****************!*\
!*** ./app.js ***!
\*****************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("console.log(2);\n\n//# sourceURL=webpack:///./app.js?");
/***/ })
},[["./app.js","runtime"]]]);
使用自定义loader之后打包
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["app2"],{
/***/ "./app.js":
/*!*****************!*\
!*** ./app.js ***!
\*****************/
/*! no static exports found */
/***/ (function(module, exports) {
eval(";\n\n//# sourceURL=webpack:///./app.js?");
/***/ })
},[["./app.js","runtime"]]]);
此方法也可以用来替换任意字符串。replace(/console\.log\(.*?\)/g,"hhhhh");