Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 检查package.json依赖项是否与安装的依赖项匹配_Node.js_Npm - Fatal编程技术网

Node.js 检查package.json依赖项是否与安装的依赖项匹配

Node.js 检查package.json依赖项是否与安装的依赖项匹配,node.js,npm,Node.js,Npm,是否有办法检查节点_模块中安装的依赖项是否与package.json/package-lock.json中列出的依赖项匹配 我知道我可以键入npm安装进行更新。但是如何检查是否需要键入npm安装 理想情况下,我希望将其添加到构建脚本中。你可以想象 #!/bin/sh npm install --check-only if [ $? -eq 0 ]; then echo continue with build else echo you need to "npm install"

是否有办法检查节点_模块中安装的依赖项是否与package.json/package-lock.json中列出的依赖项匹配

我知道我可以键入npm安装进行更新。但是如何检查是否需要键入npm安装

理想情况下,我希望将其添加到构建脚本中。你可以想象

#!/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
要么向npm解压,要么调用一些官方的npm API,但我都没有看到

也许这样一个选择隐藏在显而易见的地方,而我只是看不见而已。 我确实找到了一个第三方解决方案,但鉴于npm安装已经必须这样做,才能知道它是否需要安装某些东西,我更喜欢通过正式的npm进行安装,这样,如果npm更改了更新标准,我将继续得到相同的结果

有没有办法检查package.json/package-long.json中列出的依赖项是否与安装的内容匹配?

尝试使用-dry run标志。根据文件man npm安装:

-dry-run参数将以通常的方式报告安装的内容 没有实际安装任何东西

您可以运行此命令,检查输出。不幸的是,它看起来不像是根据是否有任何更改而更改返回值,但是您可以解析输出

如果输出的最后一行如下所示:

up to date in 7.064s
added 1 package in 7.014s
那么你很好,但是如果它看起来像:

up to date in 7.064s
added 1 package in 7.014s


然后需要一个npm i。

似乎就是这个包doing@EricWong,我的理解是,检查依赖项只会检查顶级软件包是否有可用的升级。它用于检查您的package.json是否需要更改。它不用于检查依赖项是否可以在package.json中定义的约束范围内升级。