[VUE] WebPack 打包后自动修改 dist 中 package.json 版本号
我们在开发 npm 包时,开发期的 package.json
通常并不一定是发布到 npm 仓库的 package.json
。这种情况下每次改版本号需要改两个地方,比较麻烦。
我一般使用 webpack
进行打包,所以有了下面这个小插件。
插件源码
modify.version.plugin.js
/** 修改版本号 webpack 插件 */ function ModifyVersionPlugin(newVersion) { this.newVersion = newVersion; } ModifyVersionPlugin.prototype.apply = function(compiler) { compiler.hooks.emit.tap('ModifyVersionPlugin', function(compilation) { let assets = compilation.assets; let fileNames = Object.keys(assets); let version = this.newVersion; // 此项可以根据情况开启,用来更新源码中静态变量的值为当前版本号 // 示例: const __VERSION__ = '__package_version__' // 打包后 __VERSION__ 变量的值将变为当前版本号 fileNames.forEach(function(fileName) { if (fileName === 'index.js') { let asset = assets[fileName]; let assetSource = asset.source(); // 将代码中的 __package_version__ 变量替换为版本号 let updatedSource = assetSource.replace(/__package_version__/, version); asset.source = function() { return updatedSource; }; } }); // 修改 /dist/package.json 中的版本号 try { const file = './dist/package.json'; const fs = require('fs'); let json = JSON.parse(fs.readFileSync(file, 'utf8')); console.log(json) json.version = version; fs.writeFileSync(file, JSON.stringify(json, null, 2)); } catch (e) { console.error(e) } }.bind(this)); }; module.exports = ModifyVersionPlugin;
使用
- 将上面的
modify.version.plugin.js
保存到项目package.json
同级目录中。 - 修改
webpack
配置,在webpack.config.js
中添加如下代码:
const ModifyVersionPlugin = require('./modify.version.plugin.js'); ... const version = require('./package.json').version console.log('Package version: ', version) ... module.exports.plugins = (module.exports.plugins || []).concat([ new ModifyVersionPlugin(version), ... ]) ...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南