Vue CLI项目中,制作封装好的组件发布到npm中,在别的项目中引入时,会因为样式文件过多而导致不方便引入。
打包命令为
vue-cli-service build --target lib src/package/index.js --dest lib --name kyui
一般我们把 .umd.js 引入到项目中就可以使用。但这里分包了。将 .umd.js 文件,分了好几个小包。在普通 html 文件里面引入是可以正常运行的。他会根据 umd.js 找到需要加载的其他分包并加载。但在vue项目中只引入 *.umd.js,其他分包不会打包到项目中,导致无法运行。
其实看上面的图,js 文件超过 77KB 左右就分块了。Gzipped 压缩后不到 12KB,我们完全可以将这些打包成一个 umd.js 文件,而不需要分多个文件。
这里借助 webpack 的一个插件来配置 Chunk 数量,maxChunks 设置为 1,只打一个包,不分多个 js 文件。在 vue.config.js 里修改webpack 的配置。
const webpack = require("webpack");
module.exports = {
configureWebpack: {
plugins: [
// 限制只打一个包,不分Chunk
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1
})
],
// 当库里面引入了比较大的文件时,为了不影响主包大小,需要设置下该包使用外部引入
externals: {
echarts: "echarts"
}
}
};
文章评论