更新Vue项目package.json文件方式
更新时间:2025年10月25日 09:57:12 作者:Qredsun
文章讨论了由于历史原因,一些已弃用的依赖没有在package.json中移除,导致构建时间过长的问题,解决方法是使用社区工具自动生成使用`nodegenerate-package.js`脚本,根据已安装的依赖进行重建运行
背景
因为历史原因,导致有些依赖已经弃用,但没有在package.json中移除,导致在进行构建时间过长。
解决方法
自动生成
npm init -y # 先生成基础 package.json(如果没有的话) npm install --package-lock-only # 确保 lock 文件是最新的 npx depcheck # 可选,查看未使用的依赖
使用社区工具,完全重建
npx npm-dedupe npx modclean # 清理无用文件(可选)
运行脚本node generate-package.js,根据已安装依赖生成(推荐)
const fs = require('fs');
const path = require('path');
const child_process = require('child_process');
const nodeModulesPath = path.resolve('node_modules');
const allDeps = fs.readdirSync(nodeModulesPath).filter(name => name !== '.bin');
const dependencies = {};
allDeps.forEach(pkg => {
try {
const pkgPath = path.join(nodeModulesPath, pkg, 'package.json');
const pkgJson = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
dependencies[pkg] = pkgJson.version;
} catch (e) {
console.warn(`跳过无效包: ${pkg}`);
}
});
const newPkgJson = {
name: "recovered-project",
version: "1.0.0",
description: "",
main: "index.js",
scripts: {},
dependencies,
};
fs.writeFileSync('package.recovered.json', JSON.stringify(newPkgJson, null, 2));
console.log('已生成 package.recovered.json');
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
webpack+vue-cli项目中引入外部非模块格式js的方法
今天小编就为大家分享一篇webpack+vue-cli项目中引入外部非模块格式js的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-09-09
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
这篇文章主要介绍了详解关于表格合并span-method方法的补充(表格数据由后台动态返回) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-05-05


最新评论