有没有办法检查安装的依赖项是否与/node_modules中列出的依赖项匹配?package.jsonpackage-lock.json
我知道我可以打字npm install来更新。但我如何检查我是否需要输入npm install.
理想情况下,我想将其添加到我的构建脚本中。你可以想象类似的东西
#!/bin/sh
npm install --check-only
if [ $? -eq 0 ]; then
echo continue with build
else
echo you need to "npm install" the latest deps
fi
Run Code Online (Sandbox Code Playgroud)
要么使用 npm,要么调用一些官方的 npm API,但我都没有看到。
也许这样的选择就隐藏在众目睽睽之下,只是我没有看到而已。我确实找到了第 3 方解决方案,但考虑到npm install已经必须这样做才能知道是否需要安装某些东西,我更喜欢通过官方来完成此操作,npm这样如果npm更改了更新的标准,我将继续得到相同的结果。
有没有办法检查 package.json/package-long.json 中列出的依赖项是否与安装的依赖项匹配?
尝试使用该--dry-run标志。根据文档man npm-install:
--dry-run 参数将以通常的方式报告安装将执行的操作,而无需实际安装任何内容。
您可以运行此命令,检查输出。不幸的是,返回值似乎不会根据是否有任何变化而变化,但您可以解析输出。
如果输出的最后一行如下所示:
up to date in 7.064s
Run Code Online (Sandbox Code Playgroud)
那么你就很好了,但如果它看起来像:
added 1 package in 7.014s
Run Code Online (Sandbox Code Playgroud)
或者
updated 1 package in 6.019s
Run Code Online (Sandbox Code Playgroud)
然后npm i需要一个。