您可以使用简单的 Node.js 脚本来读取和更新bundleDependencies
属性,并通过 npm 生命周期挂钩/脚本运行它。
我的文件夹结构是:
scripts/update-bundle-dependencies.js
package.json
scripts/update-bundle-dependencies.js
:
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const pkgPath = path.resolve(__dirname, "../package.json");
const pkg = require(pkgPath);
pkg.bundleDependencies = Object.keys(pkg.dependencies);
const newPkgContents = JSON.stringify(pkg, null, 2);
fs.writeFileSync(pkgPath, newPkgContents);
console.log("Updated bundleDependencies");
如果您使用的是最新版本npm
(> 4.0.0),则可以使用prepublishOnly
orprepack
脚本:https ://docs.npmjs.com/misc/scripts
prepublishOnly:在包准备和打包之前运行,仅在 npm publish 上运行。(见下文。)
prepack:在打包 tarball 之前运行(在 npm pack、npm publish 和安装 git 依赖项时)
package.json
:
{
"scripts": {
"prepack": "npm run update-bundle-dependencies",
"update-bundle-dependencies": "node scripts/update-bundle-dependencies"
}
}
您可以通过运行自己测试它npm run update-bundle-dependencies
。
希望这可以帮助!