假设您有一个包含以下 package.json
的 npm 项目:
{
"name": "XXX",
"version": "YYY",
"license": "ZZZ",
"scripts": {
"scriptA": "...",
"scriptB": "...",
"preinstall": "...",
"postinstall": "..."
},
"devDependencies": {
"depA": "vA",
"depB": "vB"
},
"dependencies": {
"depC": "vC",
"depD": "vD"
}
}
打包/发布包时,您不需要 scripts
或 devDependency
键。但更危险的是,当人们将您的软件包作为依赖项安装时,preinstall
和 postinstall
脚本可能会触发奇怪/不需要的操作。
那么如何清理 package.json
,即删除不需要的 key ?
我目前使用的是 npm 3.10。如果我使用npm pack
命令,根据npm documentation如果没有提供参数,它将简单地打包当前包(因此从磁盘获取原始 package.json
),并且我无法提供任何选项来清理它。
我当然可以编写自己的脚本来压缩包并生成我自己的package.json
。这是要走的路吗?
最佳答案
我创建了clean-package
来做到这一点。
最简单的用法只需三步:
npm install clean-package --save-dev
将
clean-package
Hook 到prepack
和postpack
脚本"scripts": { "prepack": "clean-package", "postpack": "clean-package restore" }
将
clean-package
配置为package.json
中的根属性"clean-package": { "remove": [ "script", "devDependencies" ] }
还有更多选项和扩展用途,因此存储库上有更多信息:https://github.com/roydukkey/clean-package .
关于javascript - 打包前清理 package.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40942495/