簡體   English   中英

npm-將已安裝的軟件包另存為依賴項

[英]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克隆一個新項目時遇到了這個問題。 我通過以下步驟解決了這個問題:

  1. 轉到項目終端中package.json存在的根文件夾
  2. 然后運行以下命令。

$ npm install

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM