vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > 更新Vue项目package.json文件

更新Vue项目package.json文件方式

作者: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');

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文