npm - 将已安装的软件包保存为依赖项

doq*_*que 34 dependencies node.js npm

我已经安装了一些软件包npm install $package,但没有先设置package.json.现在我想创建一个package.json文件,但保留所有已安装的包作为依赖项.只是运行npm init不提供此选项,我可以自动实现吗?

arc*_*don 34

2016年1月更新

npm现在支持这个开箱即用.我有npm版本3.5.2.

所以只安装了一个带有下划线node_modules文件夹.

npm init --yes
Run Code Online (Sandbox Code Playgroud)

然后:

cat package.json
Run Code Online (Sandbox Code Playgroud)

包含在package.json中:

"dependencies": {
    "underscore": "^1.8.3"
  },
Run Code Online (Sandbox Code Playgroud)


Rod*_*ros 25

更新:随着npm v3的推出,这个技巧将在你的package.json文件上创建大量不需要的条目.那是因为@ sunny-mittal指出模块依赖关系现在已经变平了.

npm据我所知,并不支持这一点.你必须重新安装传递--save给每个包的每个包.

但是,如果您使用的是基于Unix的系统,那么就有一种解决方法.从项目根文件夹内部,package.json已经创建了一个文件(npm init如您所述),运行:

npm install $(ls node_modules/) --save
Run Code Online (Sandbox Code Playgroud)

它将重新安装包,并将它们保存package.jsondependencies.

  • 应该注意的是,对于npm 3+,依赖关系变得非常平坦,并且`ls node_modules`技巧虽然超级聪明,但最终会创建大量不需要的条目. (4认同)