Npm - сохранить установленные пакеты в качестве зависимостей
Я установил некоторые пакеты через npm install $package
, не настроив сначала package.json
.
Теперь я хотел бы создать файл package.json
, но сохранить все установленные пакеты в качестве зависимостей.
Просто запустить npm init
не предлагает эту опцию, могу ли я добиться этого автоматически?
Ответы
Ответ 1
Обновление января 2016 года
npm теперь поддерживает это из коробки. У меня версия npm 3.5.2.
поэтому только с папкой node_modules с установленным подчеркиванием.
npm init --yes
то
cat package.json
Содержится внутри package.json:
"dependencies": {
"underscore": "^1.8.3"
},
Ответ 2
ОБНОВЛЕНИЕ: С запуском npm v3 этот трюк создаст много нежелательных записей в вашем файле package.json
. Это потому, что зависимости модулей теперь сплющены, как отметил @sunny-mittal.
npm
не поддерживает это, насколько я знаю. Вы должны переустановить каждый пакет, проходящий через --save
, каждому из них.
Но, обходной путь, если вы используете системы на базе Unix. Изнутри корневой папки проекта с уже созданным файлом package.json
(npm init
, как вы упомянули) выполните:
npm install $(ls node_modules/) --save
и он переустановит пакеты и сохранит их в package.json
как dependencies
.
Ответ 3
Так как NPM node_modules
сейчас плоский, а @Rodrigo не справляются с этим.
Это то, что я связал вместе.
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
[email protected] /home/victor/x
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
`-- [email protected]
Ответ 4
Я написал модуль под названием pkg-save.
Вы можете попробовать, если ваша версия npm "2.x.x".
Я не тестировал в npm v3, поэтому я не знаю, полезен он или нет в npm v3.
Ответ 5
Я столкнулся с этой проблемой, когда я клонировал новый проект из битбакет. Я решил это с помощью следующих шагов:
- Перейдите в корневую папку, где package.json существует в вашем проекте.
- Затем выполните следующую команду.
$ npm install