NPM устанавливает пакет снаружи текущего каталога
Я пытаюсь установить экспресс-пакет с помощью npm из каталога /home/iwan/my -project:
npm install express
[email protected] ../node_modules/express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected])
Странная вещь: npm не устанавливает экспресс-пакет в текущем каталоге (/home/iwan/my-project/ node_modules/express), но в /home/iwan/ node_modules/express.
Я что-то пропустил?
Ответы
Ответ 1
Если каталог node_modules
не существует в вашем текущем каталоге, NPM будет искать его в более высоких каталогах, пока не найдет его. Итак, если родительский каталог имеет каталог node_modules
, NPM будет считать, что он должен устанавливать модули.
Скорее всего, это создать пустой каталог node_modules
, где вы хотите разместить модули.
Ответ 2
Я считаю, что лучший способ установить пакеты с помощью npm
- сделать файл package.json
. Как это, просто поместите его в каталог smae как свое приложение. Пример файла package.json
может выглядеть следующим образом:
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "3.3.5",
"jade": "*",
"less-middleware": "*",
"ejs": "*",
"mongoose": "3.6.*"
}
}
Взгляните на список зависимостей. Просто добавьте модуль, который вы хотите, например, underscore
. Просто добавьте его в зависимости dict. Например:
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "3.3.5",
"jade": "*",
"less-middleware": "*",
"ejs": "*",
"mongoose": "3.6.*",
"underscore": "*" <-------------- Added
}
}
Затем перейдите в свой каталог и просто запустите npm install
и bam! Все пакеты и их зависимости будут установлены для вас. Он будет выполнять всю работу, а это означает, что вы создаете для себя папку node_modules
. Вот как выглядит мой каталог приложений:
![enter image description here]()
Ответ 3
Вы также можете создать пустой файл package.json, используя рекомендации веб-страницы https://docs.npmjs.com/files/package.json
. Затем поместите это в папку проекта и введите npm install
.