npm - 将已安装的包保存为依赖项
npm - save installed packages as dependencies
我已经通过 npm install $package
安装了一些软件包,但没有先设置 package.json
。
现在我想创建一个 package.json
文件,但将所有已安装的包保留为依赖项。
只是 运行 npm init
不提供此选项,我可以自动实现吗?
更新: 随着 npm v3 的发布,这个技巧将在您的 package.json
文件中创建大量不需要的条目。这是因为模块依赖关系现在被扁平化了,正如@sunny-mittal 指出的那样。
据我所知,npm
不支持这一点。您必须重新安装每个包,将 --save
传递给每个包。
但是,如果您使用的是基于 Unix 的系统,则有一个解决方法。在您的项目根文件夹中,已经创建了一个 package.json
文件(npm init
,如您所述),运行:
npm install $(ls node_modules/) --save
它会重新安装软件包,并将它们保存到 package.json
中作为 dependencies
。
由于 NPM node_modules
现在持平,@Rodrigo 的回答处理得不好。
这是我编织的。
npm list --depth=0 | sed "1d" | sed -E "s/^[\`+-]+\s//" | sed -E "s/@(.*)$//"
这基本上就是 ls node_modules
之前所做的。
One-liner保存安装。
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
2016 年 1 月更新
npm 现在开箱即用。我有 npm 版本 3.5.2.
所以只有一个 node_modules 文件夹安装了 underscore。
npm init --yes
然后:
cat package.json
包含在 package.json 中:
"dependencies": {
"underscore": "^1.8.3"
},
我写了一个名为 pkg-save 的模块。
如果你的 npm 版本是 "2.x.x".
你可以试试
我没有在npm v3中测试过,所以不知道在npm v3中有没有用。
我从 bitbucket 克隆一个新项目时遇到了这个问题。我通过以下步骤解决了这个问题:
- 转到 根文件夹,其中 package.json 存在于您的项目终端中。
- 然后运行下面的命令。
$ npm install
我已经通过 npm install $package
安装了一些软件包,但没有先设置 package.json
。
现在我想创建一个 package.json
文件,但将所有已安装的包保留为依赖项。
只是 运行 npm init
不提供此选项,我可以自动实现吗?
更新: 随着 npm v3 的发布,这个技巧将在您的 package.json
文件中创建大量不需要的条目。这是因为模块依赖关系现在被扁平化了,正如@sunny-mittal 指出的那样。
npm
不支持这一点。您必须重新安装每个包,将 --save
传递给每个包。
但是,如果您使用的是基于 Unix 的系统,则有一个解决方法。在您的项目根文件夹中,已经创建了一个 package.json
文件(npm init
,如您所述),运行:
npm install $(ls node_modules/) --save
它会重新安装软件包,并将它们保存到 package.json
中作为 dependencies
。
由于 NPM node_modules
现在持平,@Rodrigo 的回答处理得不好。
这是我编织的。
npm list --depth=0 | sed "1d" | sed -E "s/^[\`+-]+\s//" | sed -E "s/@(.*)$//"
这基本上就是 ls node_modules
之前所做的。
One-liner保存安装。
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
2016 年 1 月更新
npm 现在开箱即用。我有 npm 版本 3.5.2.
所以只有一个 node_modules 文件夹安装了 underscore。
npm init --yes
然后:
cat package.json
包含在 package.json 中:
"dependencies": {
"underscore": "^1.8.3"
},
我写了一个名为 pkg-save 的模块。
如果你的 npm 版本是 "2.x.x".
你可以试试
我没有在npm v3中测试过,所以不知道在npm v3中有没有用。
我从 bitbucket 克隆一个新项目时遇到了这个问题。我通过以下步骤解决了这个问题:
- 转到 根文件夹,其中 package.json 存在于您的项目终端中。
- 然后运行下面的命令。
$ npm install