1

在我的 javascript 项目中,我想冻结依赖项。为此,我使用 npm-shrinkwrap https://docs.npmjs.com/cli/shrinkwrap

我做了文档中写的事情,它有效,但我找不到任何证据表明安装确实使用文件 npm-shrinkwrap.json 中的数据

这里有更详细的解释。

我有一个超级简单的 js 项目:

bessarabov@air:~/shrinkwrap$ ls
package.json
bessarabov@air:~/shrinkwrap$ cat package.json
{
    "dependencies" : {
        "express" : "4.14.0",
        "moment" : "2.14.1"
    }
}

然后我运行npm install(这里是日志——https: //gist.github.com/bessarabov/9920d6dcb1cd71e504c6fe561e39643f)然后我运行:

bessarabov@air:~/shrinkwrap$ npm shrinkwrap
wrote npm-shrinkwrap.json

所以,在我运行这两个命令后,我得到了新目录node_modules和一个新文件npm-shrinkwrap.json

bessarabov@air:~/shrinkwrap$ ls
node_modules        npm-shrinkwrap.json package.json

然后我删除已安装的库:rm -rf node_modules/npm install再次运行。并且日志与没有时完全相同npm-shrinkwrap.jsonhttps://gist.github.com/bessarabov/33c9421744582501482e4f00453f9d38

所以,我不确定第二个是否npm install真的使用npm-shrinkwrap.json文件中的数据。我想找到一种在使用的日志中查看的npm-shrinkwrap.json方法。

我在用着:

bessarabov@air:~/shrinkwrap$ npm --version
3.3.12
bessarabov@air:~/shrinkwrap$ node --version
v5.3.0

但我也尝试过节点 6.5.0,结果是一样的。

4

0 回答 0