添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

再开发过程中难免有时需要对所有的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");

再开发过程中难免有时需要对所有的js文件中的某些字符串进行统一处理,l利用webpack提供的自定义loader可以在打包时统一处理webpack.config.js中配置rules:[ { test: /\.js$/, //loader: 'happypack/loader?id=happybabel', loader:...
webpack4项目脚手架从零开始写 webpack4出来也有一段时间了,之前的项目还一直用的是webpack2版本。由于工作太忙,也没有时间去熟悉v3版本的特点与优势。这次所以从4开始重新学习一下webpack的基础配置项以及最新的插件都能干些什么? 所用到的插件 |-- babel // 这个几乎是必装的,浏览器识别ES6就全靠它了 |-- html-webpack-plugin // 强大的html处理器,没有不用的理由。可以生成模板,给链接添加缓存,压缩... |-- extract-text-webpack-plugin // 有了它,我们就可以分离项目css,用link的形式来导入到页面 |-- optimize-css-assets-webpack-p
替换捆绑webpack插件 替换webpack编译的包的字符串,与string-replace-webpack-plugin不同,此插件在依赖编译的模块上运行,因此您可以替换任何字符串,甚至require 。 var ReplaceBundleStringPlugin = require ( 'replace-bundle-webpack-plugin' ) plugins: [ new ReplacePlugin ( [ { pattern : / window.require / g , replacement : function ( ) { return 'require' ; } ] ) 3、使用场景 1 . 在使用 webpack 项目打包的时候,用来将开发环境的请求 URL 替换为 生产环境的 URL 。 2 . 项目统一查找调整页面配色样式 color , 将 #00ff00 替换为 #ff0700 。 3 . 大型项目,依照打包策略在相关文件写入不同内容。 以上说白了就是 用webpack-re
1 webpack介绍 webpack是一个开源的前端打包工具,Webpack 提供了前端开发缺乏的模块化开发方式,将各种静态资源视为模块,并从它生成优化过的代码。如:将浏览器无法识别的es6代码转换成es5、sass和less等css框架进行转换成css文件、通过使用pollify解决浏览器兼容等问题。 2 配置文件的作用 配置文件主要是告诉webpack那个文件为打包入口(entry)、向何处输出改文件(output),在输出的过程需要通过什么插件帮忙转换和处理代码(loader和plugin)等等,
https://blog.csdn.net/yyone123/article/details/107914309 在遇到webpack时,常见的一种形式是: !function(e) { t = {}; function n(r) { if (t[r]) return t[r].exports; var i = t[r] = { exports: {} return e[r].call( 热模块替换的实现有两种方式,一种是webpack-dev-server和webpack内置的HMR 插件的结合使用;一种是利用webpack-hot-middleware间件。本文记录第二种使用方法。 //根据webpack版本安装适应版本的间件 npm i webpack-hot-middleware --save-dev //为每个入口文件添加...
自定义一个 webpack loader,你需要按照以下步骤进行操作: 1. 创建一个新的文件,命名为你的 loader 名称,例如 `my-custom-loader.js`。 2. 在该文件编写一个函数,该函数将接收源文件内容作为输入,并返回转换后的结果。函数的参数通常包括源文件内容 `source` 和一些可选的 loader 配置项 `options`。 3. 在函数,你可以对源文件内容进行任何转换操作,例如解析、修改、添加或删除特定的代码等。 4. 使用 CommonJS 模块导出该函数。 下面是一个简单的示例: ```javascript // my-custom-loader.js module.exports = function(source, map, meta) { // 对源文件内容进行转换操作 const transformedSource = source.replace(/foo/g, 'bar'); // 返回转换后的结果 return transformedSource; 在上述示例,我们定义了一个简单的 loader 函数,它将源文件的所有 `foo` 替换为 `bar`。 完成自定义 loader 的编写后,你可以将其应用到 webpack 配置。在配置文件使用 `module.rules` 属性来定义 loader 规则,将你的自定义 loader 添加进去。例如: ```javascript // webpack.config.js module.exports = { // ... module: { rules: [ test: /\.js$/, // 匹配需要使用该 loader 的文件 use: [ 'babel-loader', // 使用其他 loader(可选) 'my-custom-loader' // 使用自定义 loader // ... 在上述示例,我们将自定义的 `my-custom-loader` 应用到所有的 `.js` 文件上,并且在它之前还使用了一个名为 `babel-loader` 的 loader。 通过这样的配置,当 webpack 构建时,它会自动调用你的自定义 loader 来处理匹配到的文件。你可以根据项目需求和转换逻辑来编写更复杂的自定义 loader