当前位置: 首页 > news >正文

曰本真人性做爰视网站自媒体营销代理

曰本真人性做爰视网站,自媒体营销代理,两支队伍建设专题网站,武汉seo首页优化公司webpack 创建自己的loader loader是用于对模块的源代码进行转换(处理) 我们使用过很多loader 比如css-loader style-loader babel-loader 我么如果想要自己创建一个loader 首先创建webpack环境 pnpm add webpack webpack-cli -D 之后创建loader模块…

webpack

创建自己的loader

loader是用于对模块的源代码进行转换(处理) 我们使用过很多loader 比如css-loader style-loader babel-loader

我么如果想要自己创建一个loader

首先创建webpack环境
pnpm add webpack webpack-cli -D

之后创建loader模块
loader本质上是一个导出为函数的javascript模块
loader runner库会调用这个函数 然会将上一个loader产生的结果或者资源文件传入进去

编写一个m-loader-01.js模块 这个函数会接收三个参数
content:资源文件的内容
map:sourcemap相关的数据
meta:一些元数据

module.exports = function (content, map, meta) {console.log("01" + content);return content;
};

建立webpack.config.js文件
并使用自己的loader

const path = require("path");module.exports = {mode: "development",entry: "./src/main.js",output: {path: path.resolve(__dirname, "./build"),filename: "bundle.js",},module: {rules: [{test: /\.js$/,use: ["./m-loader/m-loader-01.js","./m-loader/m-loader-02.js","./m-loader/m-loader-03.js",],},],},
};

具体文件目录
在这里插入图片描述
打包后的效果
在这里插入图片描述

同步的loader

什么是同步的loader
默认创建的loader就是同步的loader
这个loader必须通过return 或者this.callback来返回结果 交给下一个loader来处理
通常在有错误的情况下 我们会使用this.callback

返回值传递给下一个loader

module.exports = function (content) {console.log("03" + content);return content + 'aaaa';
};
module.exports = function (content) {console.log("02" + content);return content + "bbbb";
};
module.exports = function (content, map, meta) {console.log("01" + content);return content;
};

在这里插入图片描述

但是当如果有异步操作时 是不会等待的 会返回undefined

module.exports = function (content) {setTimeout(() => {console.log("03" + content);return content + "aaaa";}, 10000);
};

在这里插入图片描述
解决方法 使用异步loader (后面会提到)
使用callback传递 优点是可以处理错误信息
第一个参数:错误信息
第二个参数:传递给下一个loader的内容

module.exports = function (content) {//this绑定对象const callback = this.callback;callback(null, "哈哈哈");
};

在这里插入图片描述

异步loader

什么是异步loader
有时候我们使用loader时会进行一些异步操作
我们希望在异步操作完成后 在返回这个loader处理的结果
这时候我们就要使用异步的loader
loader-runner已经在执行loader时给我们提供了方法 让loader变成一个异步的loader

module.exports = function (content) {//this绑定对象const callback = this.async();setTimeout(() => {console.log("03" + content);callback(null, content + "aaaa");}, 2000);
};

在这里插入图片描述

给loader传递参数

我们可以使用getOptions

module.exports = function (content) {//1.获取使用loader时 传递进来的参数const options = this.getOptions();console.log(options);console.log("04", content);return content;
};
const path = require("path");module.exports = {mode: "development",entry: "./src/main.js",output: {path: path.resolve(__dirname, "./build"),filename: "bundle.js",},module: {rules: [{test: /\.js$/,use: [// "./m-loader/m-loader-01.js",// "./m-loader/m-loader-02.js",// "./m-loader/m-loader-03.js",{loader: "./m-loader/m-loader-04.js",options: {name: "kobe",age: 24,},},],},],},
};

在这里插入图片描述

校验参数

我们可以通过一个webpack官方提供的校验库schema-utils 安装对应的库
pnpm add schema-utils

const { validate } = require("schema-utils");
const loader04Schema = require("../schema/loader-04-schema.json");module.exports = function (content) {//1.获取使用loader时 传递进来的参数const options = this.getOptions();console.log(options);//2.校验参数是否符合规则validate(loader04Schema, options);console.log("04", content);return content;
};

创建schema文件与规则文件

{"type": "object","properties": {"name": {"type": "string","description": "请输入名称,并且是string类型"},"age": {"type": "number","description": "请输入年龄,并且是number类型"}}
}

文件目录
在这里插入图片描述

http://www.hkea.cn/news/667751/

相关文章:

  • 网站后台管理系统cms推广seo网站
  • 企业网站备案注销百度推广登陆平台
  • 重庆如何软件网站推广网站优化seo
  • 最专业的佛山网站建设价格3小时百度收录新站方法
  • wordpress门户建站html网页完整代码作业
  • 子域名 做单独的网站广州seo外包公司
  • 凡科建设网站的步骤永久免费无代码开发平台网站
  • 建设一个百度百科类网站网站排名优化的技巧
  • 自己做网站可以吗淄博做网站的公司
  • 个人做健康网站好吗宁波网站制作与推广价格
  • 长沙有哪些做网站的连云港seo优化公司
  • 青羊区定制网站建设报价搜索引擎营销方案
  • 淘宝优惠券查询网站怎么做域名备案官网
  • wordpress自定义url优化教程网下载
  • 模板网站和定制网站百度搜索引擎的网址
  • 企业建设网站公司哪家好app拉新推广接单平台
  • 老虎淘客系统可以做网站吗江西省水文监测中心
  • 高港区企业网站建设快速建站教程
  • 怎样写企业网站建设方案北京网站seo招聘
  • 做蛋糕视频的网站软文广告范文
  • h5自适应网站模板下载网站换友链平台
  • 政府网站建设及管理规范各大搜索引擎入口
  • poedit pro wordpress免费网站推广优化
  • 市场营销产品推广策划方案seo合作代理
  • 东莞专业网站建设推广搜索引擎网络排名
  • 服务器做网站用什么环境好销售营销方案100例
  • 如何做DJ网站英文seo外链
  • 网站统计源码下载百度推广的步骤
  • 本地网站建设seo推广的方法
  • 东莞好的网站建设效果seo和sem分别是什么