![](/img/trans.png)
[英]Should I install npm packages that are dependencies of other installed packages?
[英]npm - save installed packages as dependencies
我已经通过npm install $package
安装了一些软件包,而没有先设置package.json
。 现在,我想创建一个package.json
文件,但将所有已安装的软件包保留为依赖项。 简单地运行npm init
不提供此选项,我可以自动实现吗?
2016年1月更新
npm现在开箱即用。 我有npm 3.5.2版本。
因此仅安装了下划线的node_modules文件夹。
npm init --yes
然后:
cat package.json
包含在package.json中:
"dependencies": {
"underscore": "^1.8.3"
},
更新:随着npm v3的启动,此技巧将在package.json
文件上创建许多不需要的条目。 因为@ sunny-mittal指出,现在模块依赖关系已经变平。
据我所知, npm
不支持该功能。 您必须重新安装每个传递--save
软件包。
但是,如果您使用的是基于Unix的系统,则有一种解决方法。 在您的项目根文件夹中,已创建一个package.json
文件( npm init
,如上所述),运行:
npm install $(ls node_modules/) --save
它将重新安装这些软件包,并将它们作为dependencies
保存到package.json
中。
由于NPM node_modules
现在很平坦,而node_modules
对此并node_modules
。
这就是我编织在一起的东西。
npm list --depth=0 | sed "1d" | sed -E "s/^[\`+-]+\s//" | sed -E "s/@(.*)$//"
这实质上是ls node_modules
之前所做的。
一线保存安装。
npm install $(npm ls | sed "1d" | sed -E "s/^[\`+-]+\s//" | sed -E "s/@(.*)$//") --save
我正在使用
$ npm --version
3.5.3
像这样的清单。
$ npm list --depth=0
x@0.1.0 /home/victor/x
+-- babel-eslint@5.0.0-beta6
+-- babel-preset-es2015@6.3.13
+-- gulp@3.9.0
+-- gulp-babel@6.1.1
`-- gulp-eslint@1.1.1
我编写了一个名为pkg-save的模块。
如果您的npm版本为“ 2.xx”,则可以尝试一下。
我尚未在npm v3中进行测试,所以我不知道它在npm v3中是否有用。
当我从bitbucket克隆一个新项目时遇到了这个问题。 我通过以下步骤解决了这个问题:
$ npm install
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.