webpack4.29.x成神之路(二十) 编写一个loader
栏目: JavaScript · 发布时间: 6年前
内容简介:上节:css代码分割目录:
上节:css代码分割
目录:
先改一下src/index.js:
import _ from 'lodash';
const root = document.getElementById('root');
root.innerText = _.join(['hello', 'webpack'], '-');
现在写一个简单的loader,将所有的webpack替换成其它内容,内容可通过options配置。
在根目录新建loaders/replace-loader.js。
loaders/replace-loader.js:
const { getOptions } = require('loader-utils');
module.exports = function(source) {
/*
this指向webpack
source:打包后的文件内容
this.query options参数
*/
const options = getOptions(this) || {};
// 返回处理后的结果,相当于是打包拦截器
return source.replace('webpack', options.name || 'Madao');
}
source是打包后生成的文件,options可以拿到配置参数,这个loader会将所有webpack替换成options.name的内容,如果没指定options.name, 就替换成Madao.
然后引用这个loader, 修改webpack/webpack.base.js:
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { resolve } = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: resolve(__dirname, '../bundles')
},
// 注册loader
resolveLoader: {
// loader查找顺序,从左到右
modules: ['node_modules', './loaders/']
},
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
// 先不传options
use: ['replace-loader', 'babel-loader']
}, {
test: /\.(gif|jpg|jpeg|png|svg)$/,
use: ['url-loader']
}]
},
plugins: [
new HtmlWebpackPlugin({
template: './index.html'
})
]
};
安装loader工具库:npm i loader-utils -D
然后npm run build, 打开bundles下的main.[contenthash].js文件,应该可以搜索到Madao:
然后我们自己传一个配置参数,修改webpack/webpack.base.js:
// 省略
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: [{
loader: 'replace-loader',
options: {
name: '史珍香'
}
}, 'babel-loader']
}, {
test: /\.(gif|jpg|jpeg|png|svg)$/,
use: ['url-loader']
}]
},
// 省略
再次npm run build,可以看到webpack就换成了'史珍香':
一个简单的loader就实现了
下节:编写一个plugin
以上所述就是小编给大家介绍的《webpack4.29.x成神之路(二十) 编写一个loader》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 基于顺丰同城接口编写sdk,java三方sdk编写思路
- 使用 Clojure 编写 OpenWhisk 操作,第 1 部分: 使用 Lisp 方言为 OpenWhisk 编写简明的代码
- 编写一个Locust文件
- 编写现代 JavaScript 代码
- 性能测试报告编写技巧
- 为vscode编写扩展
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深度学习
[美] 伊恩·古德费洛、[加] 约书亚·本吉奥、[加] 亚伦·库维尔 / 赵申剑、黎彧君、符天凡、李凯 / 人民邮电出版社 / 2017-7-1 / 168
《深度学习》由全球知名的三位专家Ian Goodfellow、Yoshua Bengio 和Aaron Courville撰写,是深度学习领域奠基性的经典教材。全书的内容包括3个部分:第1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。 《深度......一起来看看 《深度学习》 这本书的介绍吧!