持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
俗话说: "工欲善其事必先利其器",今天给大家分享几款辅助项目开发的插件,我相信总有一款适合您。
filemanager-webpack-plugin
这是一个 Webpack
的插件.
作用:我们使用webpack
进行打包时,对打包好的文件夹进行进一步的处理。比如 复制,移动,压缩,设置产出位置等。
因为我们的H5
项目要求将build
产出的文件夹放在一个特殊的文件夹中,然后压缩成zip
的文件,命名为MMDDHHMMSS.zip
的格式。
使用这个工具,可以使操作自动完成,避免一下繁琐的手动操作。
配置示例如下:
const FileManagerPlugin = require("filemanager-webpack-plugin");
// 对打包后产出文件进行压缩,命名等操作。
new FileManagerPlugin({
events: {
onStart: [],
onEnd: [
{
delete: ["ucf-publish/www/"],
copy: [
{
source: "ucf-publish/" + context,
destination: "ucf-publish/www/" + context,
},
],
// 压缩操作;
archive: [
{
source: "ucf-publish/www",
destination: homedir + publishFileName,
},
],
},
],
},
}),
concurrently
这是一个独立的node-modules
依赖包。
作用:是可以在package.json中配置一个命令执去执行多个操作。
由于我们项目中每一个业务文件夹都需要执行打包操作。如果手动的执行 npm run build
文件夹, 需要反复的执行多次,浪费时间,操作繁琐,所以需要此功能。
package.json
文件
"build-all":"concurrently \"vue-cli-service build --demo1\" \"vue-cli-service build --demo2\"",
另一种应用场景:
前端使用React
开发,后端使用 nodeJs
开发。
在本地环境需要 同时启动前端 在3000端口,后端在8080端口。
那么可以通过 concurrently
命令,直接一个命令启动两个服务。
"scripts": {
"start": "react-scripts start",
"server": "npm start --prefix backend",
"dev": "concurrently "npm run server" "npm run start""
},
Rest Client
这是一个 VSCode
的插件工具。
作用: 通过一个配置文件即可实现一个简单的HTTP
请求的工具。
在VSCode
中一边写代码,一边调接口,查看后端返回数据。避免了使用其他工具,来回切换工具的繁琐。
配置文件示例 api.http
注意 请求头和请求体中间需要一个空行。
@cookie = // 这是一个变量,设置请求的cookie。
@contentType = application/json;charset=UTF-8
# @host = http://demo.server.com
@host = http://127.0.0.1:3000
@router = /imfbp-fio-web
### 请求示例
@dicReqParam = insNormYorn,
POST {{host}}/{{router}}/common/getDicByCodes?codeList={{dicReqParam}} HTTP/1.1
X-Requested-With: XMLHttpRequest
Cookie: {{cookie}}
### GET请求示例
https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web&sugsid=34947,34442,35106,31253,35048,35062,34584,34518,34916,34813,26350,34865,35145,35018&wd=3&req=2&csor=1&cb=jQuery110205370714346382366_1636900323664&_=1636900323665
### 查询详情接口;
POST {{host}}{{router}}/fioOrder/queryOrderById HTTP/1.1
Content-Type:{{contentType}}
Cookie: {{cookie}}
{"id":"1459522294371700737"}
可选链运算符插件(?.)
这是一个 Babel
插件,使js支持?.
运算符。
@babel/plugin-proposal-optional-chaining
let requestData={
data:{
formData:{
name:"king"
}
}
}
// 之前的取值操作
let name=requestData && requestData.data && requestData.data.formData && requestData.data.formData.name;
// 等价方式 用可选链操作符
let name=requestData?.data?.formData?.name;
可选链操作符: 判断问号点后面是否有值,有值取值,否则,如果为null
或undefined
时直接返回undefined
。
空值合并运算符插件(??)
这是一个 Babel
插件,使js
支持??
运算符。
babel/plugin-proposal-nullish-coalescing-operator
console.log('' ?? 'default value') // ""
console.log('' || 'default value') // "default value"
console.log(0 ?? 100) // 0
console.log(0 || 100) // 100
// 实战使用
var foo = cell.pageIndex ?? "default Value"; // 空值合并操作符
console.log({ foo });
空值合并运算符,功能类似逻辑或运算符。
??
语法:只有在 左侧为undefined
和null
的时候返回右侧值。否则取左侧值。||
语法:左侧为undefined null 0 ""
时,都会返回右侧值。否则返回左侧值。
PlopJs
这是一个根据模板批量生成代码文件的node modules
工具。
具体使用方法及使用场景请参考 React项目优化(5)-使用PlopJs生成模板文件