pip冻结Node和npm

Dmi*_*sky 29 node.js npm

这在Python中是惯用的:

pip freeze > requirements.txt
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

第一个命令将需求列表保存到文件中.然后,您可以使用该命令将需求安装到您的环境中.

Node有npm install,但我不知道如何将我的依赖项状态转储到package.json.我用Google搜索并发现了这个:

npm ls | grep -E "^(?|?)?" | cut -d" " -f2 | awk '{FS = "@"; print "\""$1"\"", ":", "\""$2"\""}'
Run Code Online (Sandbox Code Playgroud)

但正如这条管道的作者所说,必须有更好的方法吗?我在这里错过了什么?

我只想将当前的deps转储到package.json中.正如https://npmjs.org/doc/shrinkwrap.html所说,

如果要使用"npm install",仍然需要"package.json"文件.

我已经浏览了这些信息shrinkwrap,但我没有看到如何简单地完成这项任务shrinkwrap.

Ral*_*ing 16

这是我得到的最接近的

npm freezelol

npm ls | grep -E "^(?|?)?" | cut -d" " -f2 | awk -v quote='"' 'BEGIN { FS = "@" } ; { print quote $1 quote,":",quote $2 quote"," }' | sed -e 's/ :/:/g'

输出就像

  "bower": "1.3.12",
  "chai": "2.1.2",
  "cucumber": "0.4.8",
Run Code Online (Sandbox Code Playgroud)

仍然需要修剪最后的尾随逗号,但它非常接近!

  • 哦,我的,这太丑了,但我用它,谢谢:) (5认同)
  • 这将立即在我的别名文件中谢谢 (2认同)
  • 上述命令的增强版本,用于分别生成依赖项和 devDependencies 部分:[npm-freeze](https://gist.github.com/nagapavan/22070c34522d15c072b7c258c09cb4ce) (2认同)

use*_*109 13

您可以使用当前安装的包创建package.json npm init.然后,您可以轻松移动package.json,只需npm install在任何地方安装软件包.