@bale-tools/vue-service v1.1.8
Vue 项目打包框架
项目目录结构
├── bin // package.json中配置的 bin 目录
├── config // webpack 配置目录
│ ├── config.json // 版本配置文件
│ └── paths.js // webpack 常量配置文件
├── copy // webpack 初始化文件拷贝目录
│ └── common // P通用文件
├── scripts // 打包文件
│ ├── build.js // 测试环境打包文件
│ ├── command.js // 命令行文件
│ ├── prod.js // 生产环境打包文件
│ └── start.js // 项目启动配置文件
│── .gitignore // git ignore 文件
│── .npmignore // npm publish ignore 文件
├── package.json // 项目依赖和常用脚本命令配置
└── README.md // 项目使用说明文件
使用
"start": "bale-vue-service start --copy",
"dev": "rimraf build && bale-vue-service build --copy",
"simulate": "rimraf build && bale-vue-service simulate --copy",
"prod": "rimraf dist && bale-vue-service prod --copy",
"clean": "bale-vue-service --clean",
"eject": "bale-vue-service eject",
"help": "bale-vue-service --help",
"versions": "bale-vue-service --versions",
插件列表
speed-measure-webpack-plugin
打包时间插件https://www.npmjs.com/package/speed-measure-webpack-pluginmini-css-extract-plugin
提取css
插件。https://www.npmjs.com/package/mini-css-extract-pluginhtml-webpack-plugin
html 插件https://www.npmjs.com/package/html-webpack-plugininline-chunk-html-plugin
对于一些导出较小的 runtime 文件,直接注入 html 文件中而减少一次请求提高速率。https://www.npmjs.com/package/inline-chunk-html-plugincopy-webpack-plugin
文件拷贝插件https://www.npmjs.com/package/copy-webpack-pluginpurgecss-webpack-plugin
去除未使用的 css。 https://github.com/FullHuman/purgecssprogress-bar-webpack-plugin
进度条插件https://www.npmjs.com/package/progress-bar-webpack-pluginimage-minimizer-webpack-plugin
图片压缩插件https://github.com/webpack-contrib/image-minimizer-webpack-plugincompression-webpack-plugin
代码压缩插件https://www.npmjs.com/package/compression-webpack-pluginworkbox-webpack-plugin
离线缓存插件https://github.com/GoogleChrome/workboxpreload-webpack-plugin
预加载插件https://github.com/GoogleChromeLabs/preload-webpack-plugincss-minimizer-webpack-plugin
css 优化和压缩插件https://www.npmjs.com/package/css-minimizer-webpack-pluginwebpack-bundle-analyzer
打包分析插件https://www.npmjs.com/package/webpack-bundle-analyzerterser-webpack-plugin
处理 js 的压缩和混淆插件https://www.npmjs.com/package/terser-webpack-plugin
说明
@babel/preset-env
中 useBuiltIns
:
// 此时不对 polyfill 做操作。如果引入 @babel/polyfill,则无视配置的浏览器兼容,引入所有的 polyfill
"useBuiltIns": false
// 根据配置的浏览器兼容,引入浏览器不兼容的 polyfill。需要在入口文件手动添加 import '@babel/polyfill',会自动根据 browserslist 替换成浏览器不兼容的所有 polyfill。
"useBuiltIns": "entry",
"corejs": 2,
// 这里需要指定 core-js 的版本, 如果 "corejs": 3, 则 import '@babel/polyfill' 需要改成
import 'core-js/stable'
import 'regenerator-runtime/runtime'
// usage 会根据配置的浏览器兼容,以及代码中用到的 API 来进行 polyfill,实现了按需添加。
"useBuiltIns": "usage",
"corejs": 2,
npm link
- 安装
- 在
package.json
中的bin
下配置目录"bale-vue-service": "./bin/index.js"
- 在项目
bin
目录下新建index.js
文件 - 通过
npm link
可以把包 link 到全局
执行 在需要使用的项目下执行
npm link @bale-tools/vue-service
, 则会把包安装到node_modules
中验证 在
bale-vue-service
项目下执行命令npx bale-vue-service
删除
npm unlink @bale-tools/vue-service
发布到私服
npm login
npm publish --access public # 公开