手写 webpack loader

2024-09-02 14:58
文章标签 手写 webpack loader

本文主要是介绍手写 webpack loader,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

webpack loader (webpack 加载器)
webpack => web pack
1)转换ES6语法成ES5
2)处理模块加载依赖
3)生成一个可以在浏览器加载执行的 js 文件

loader (引用定义)
1、是 webpack 用于在编译过程中解析各类文件格式,并输出;
2、本质上就是一个 node 模块,通过写一个函数来完成自动化的过程;
3、由此我们就可以在开发模式下,通过解析各类前端无法解析的文件格式,然后将其解析后返回为对象或字符串供前端开发时使用,在 webpack 的编译过程中自动会将我们前端项目中引用的文件格式对应到指定 loader 解析后输出。

webpack config

module.exports = {entry:'./example/index.js',output:'./dist/index.js'
}
//包含loader
module.exports = {entry:'./example/index.js',output:'./dist/index.js',plugin:[],module:{rules:[{test:/\.txt/,use:[{'../../loaders/test1.js',}]}
]
}
}多个loader
use:[
{
'../loader/change-content.js',
'../loader/uppercase-loader.js',
'../loader/reverse-loader.js',
}
]//tips:如果use.length > 1 ,执行顺序为从下往上(先进后出)//reverse-loader.js
module.exports = function (source) {if(source) {source = source.split('').reverse().join('')}return source
}//uppercase-loader.jsmodule.exports = function (source) {console.log('test',source)if (source) {source = source.charAt(0).toUpperCase() + source.slice(1)console.log( source)}return source
}//webpack.config.js
module.exports = {entry:path.join(__dirname,'./src/txt/test.txt'),output:{path:path.join(__dirname,"test"),filename: 'temp.js'},module:{rules:[{test:/\.txt/,use:['./loader/reverse-loader']}]}
}

示例demo:https://github.com/yzbyxmx/webpack.git

这篇关于手写 webpack loader的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130284

相关文章

stl的sort和手写快排的运行效率哪个比较高?

STL的sort必然要比你自己写的快排要快,因为你自己手写一个这么复杂的sort,那就太闲了。STL的sort是尽量让复杂度维持在O(N log N)的,因此就有了各种的Hybrid sort algorithm。 题主你提到的先quicksort到一定深度之后就转为heapsort,这种是introsort。 每种STL实现使用的算法各有不同,GNU Standard C++ Lib

JS手写实现深拷贝

手写深拷贝 一、通过JSON.stringify二、函数库lodash三、递归实现深拷贝基础递归升级版递归---解决环引用爆栈问题最终版递归---解决其余类型拷贝结果 一、通过JSON.stringify JSON.parse(JSON.stringify(obj))是比较常用的深拷贝方法之一 原理:利用JSON.stringify 将JavaScript对象序列化成为JSO

T1打卡——mnist手写数字识别

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.定义GPU import tensorflow as tfgpus=tf.config.list_physical_devices("GPU")if gpus:gpu0=gpus[0]tf.config.experimental.set_memort_groth(gpu0,True) #设置GPU现存用量按需

【DL--22】实现神经网络算法NeuralNetwork以及手写数字识别

1.NeuralNetwork.py #coding:utf-8import numpy as np#定义双曲函数和他们的导数def tanh(x):return np.tanh(x)def tanh_deriv(x):return 1.0 - np.tanh(x)**2def logistic(x):return 1/(1 + np.exp(-x))def logistic_derivati

【tensorflow CNN】构建cnn网络,识别mnist手写数字识别

#coding:utf8"""构建cnn网络,识别mnistinput conv1 padding max_pool([2,2],strides=[2,2]) conv2 x[-1,28,28,1] 卷积 [5,5,1,32] -> [-1,24,24,32]->[-1,28,

【tensorflow 全连接神经网络】 minist 手写数字识别

主要内容: 使用tensorflow构建一个三层全连接传统神经网络,作为字符识别的多分类器。通过字符图片预测对应的数字,对mnist数据集进行预测。 # coding: utf-8from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tfimport matplotlib.pyplot

微信小程序手写签名

微信小程序手写签名组件 该组件基于signature_pad封装,signature_pad本身是web端的插件,此处将插件代码修改为小程序端可用。 signature_pad.js /*!* Signature Pad v5.0.3 | https://github.com/szimek/signature_pad* (c) 2024 Szymon Nowak | Released

vue-cli webpack在node环境下安装使用

第一步,需要下载并安装node.js以及他的npm组件;   第二步,用node -v;npm -v来测试node.js以及npm是否安装成功(建议用GIT命令行工具,因为GIT是linux系统),如果显示出它的版本,说明已经安装成功,如下图;   第三步,下载vue-cli,在命令行中输入npm install -g vue-cli,自动下载vue-cli(会生成一大堆的依

webpack-AST剖析

webpack-AST 目录 文章目录 前言推荐阅读拆解函数`AST`工具 - `recast`制作模具 - `recast.types.builders`如何改装 实战 - 命令行修改`js`文件`recast.visit` - `AST`节点遍历`TNT` - 判断`AST`对象类型`AST`修改源码,导出全部方法`Builder`实现一个箭头函数 `exportific`前端工具使用

webpack-模块热替换剖析

webpack-模块热替换剖析 目录 文章目录 前言推荐阅读前提`HMR`应用开启`HMR`开启`webpack-dev-server`的`HMR`手动添加代码 `HMR`原理步骤 前言 主要讲解热更新的原理 推荐阅读 《webpack实战 入门、进阶与调优》 前提 早期调试代码基本都是 改代码 - 刷新网页 - 查看 - 修改代码第一次提升效率:工具检测到代码改动