@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-pluginhtml 插件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-plugincss 优化和压缩插件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 # 公开