Работа с Node.js стала безопаснее NodeSource начала сертифицировать модули npm


Оглавление (нажмите, чтобы открыть):

не работает npm install

Вложения

2020-09-27T12_29_32_872Z-debug.zip (133.7 Кб, 1 просмотров)
27.09.2020, 12:34

Не работает search и install в npm
Проблема такая. Хотел установить express, но ни отыскать, ни инсталлировать его не смог как потом.

Webpack «npm run build» выдает ошибку: «npm ERR! missing script: build»
Помогите пожалуйста! npm run build выдает ошибку npm ERR! missing script: build npm ERR! A.

Ошибка npm
После обновления npm перестал работать.При попытке вызова любой команды появляется ошибка. $ npm.

Npm missing :bl
Прохожу тесты по how-to-npm. Дошел до 13 части Outdated. вот что получается Now that.

Ошибка npm
здравствуйте я только начал изучать node.js и решил качать пакет а он выдаёт ошибку npm i.

27.09.2020, 12:44 [ТС] 2

Немножко подробнее, копаю в сторону sharp, выяснил:

sudo npm install sharp
[sudo] пароль для mikhail:

> sharp@0.21.3 install /srv/http/Digital-Agencies/node_modules/gulp-responsive/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

info sharp Detected globally-installed libvips v8.8.0
info sharp Building from source via node-gyp
gyp WARN EACCES user «mikhail» does not have permission to access the dev dir «/root/.cache/node-gyp/12.9.1»
gyp WARN EACCES attempting to reinstall using temporary dev dir «/srv/http/Digital-Agencies/node_modules/gulp-responsive/node_modules/sharp/.node-gyp»
make: вход в каталог «/srv/http/Digital-Agencies/node_modules/gulp-responsive/node_modules/sharp/build»

Node.js Установка пакетов

пример

Вступление

Пакет — это термин, используемый npm для обозначения инструментов, которые разработчики могут использовать для своих проектов. Это включает в себя все: от библиотек и фреймворков, таких как jQuery и AngularJS, до задач, таких как Gulp.js. Пакеты появятся в папке, обычно называемой node_modules , которая также будет содержать файл package.json . Этот файл содержит информацию обо всех пакетах, включая любые зависимости, которые являются дополнительными модулями, необходимыми для использования определенного пакета.

Npm использует командную строку для установки и управления пакетами, поэтому пользователи, пытающиеся использовать npm, должны быть знакомы с базовыми командами в своей операционной системе, то есть: перемещаться по каталогам, а также видеть содержимое каталогов.

Установка NPM

Обратите внимание, что для установки пакетов необходимо установить NPM.

Рекомендуемый способ установки NPM — использовать один из установщиков со страницы загрузки Node.js. Вы можете проверить, установлено ли у вас уже установленное node.js, выполнив команду npm -v или npm version .

После установки NPM с помощью установщика Node.js обязательно проверьте наличие обновлений. Это связано с тем, что NPM обновляется чаще, чем установщик Node.js. Чтобы проверить наличие обновлений, выполните следующую команду:

Как установить пакеты

Для установки одного или нескольких пакетов используйте следующее:

Примечание . Это установит пакет в каталог, в который в настоящее время входит командная строка, поэтому важно проверить, выбран ли соответствующий каталог

Если у вас уже есть файл package.json в вашем текущем рабочем каталоге, и в нем определены зависимости, то npm install автоматически разрешит и установит все зависимости, перечисленные в файле. Вы также можете использовать сокращенную версию команды npm install которая: npm i

Если вы хотите установить определенную версию пакета, используйте:

Если вы хотите установить версию, которая соответствует определенному диапазону версий, используйте:

Если вы хотите установить последнюю версию, используйте:

Вышеупомянутые команды будут искать пакеты в центральном репозитории npm на npmjs.com . Если вы не хотите устанавливать из реестра npm , поддерживаются другие параметры, такие как:

Обычно модули устанавливаются локально в папке с именем node_modules , которая может быть найдена в текущем рабочем каталоге. Это каталог require() будет использовать для загрузки модулей, чтобы сделать их доступными для вас.

Если вы уже создали файл package.json , вы можете использовать —save (стенографию -S ) или один из ее вариантов, чтобы автоматически добавить установленный пакет к вашему package.json в качестве зависимости. Если кто-то еще установит ваш пакет, npm автоматически прочитает зависимости из файла package.json и установит перечисленные версии. Обратите внимание, что вы все равно можете добавлять и управлять своими зависимостями, редактируя файл позже, поэтому обычно рекомендуется отслеживать зависимости, например:

Чтобы устанавливать пакеты и сохранять их только в том случае, если они необходимы для разработки, а не для их запуска, а не если они необходимы для запуска приложения, выполните следующую команду:

Установка зависимостей

Некоторые модули не только предоставляют библиотеку для вас, но также предоставляют один или несколько двоичных файлов, которые предназначены для использования в командной строке. Хотя вы все равно можете устанавливать эти пакеты локально, часто рекомендуется устанавливать их в глобальном масштабе, чтобы инструменты командной строки могли быть включены. В этом случае npm автоматически свяжет двоичные файлы с соответствующими путями (например, /usr/local/bin/ ), чтобы их можно было использовать из командной строки. Чтобы установить пакет по всему миру, используйте:

Если вы хотите просмотреть список всех установленных пакетов и связанных с ними версий в текущей рабочей области, используйте:

Добавление необязательного аргумента имени может проверить версию определенного пакета.

Примечание. Если вы сталкиваетесь с проблемами разрешений при попытке установить модуль npm во всем мире, не поддавайтесь искушению выпустить sudo npm install -g . для решения проблемы. Предоставление сторонних скриптов для работы с вашей системой с повышенными привилегиями опасно. Проблема с разрешением может означать, что у вас возникла проблема с тем, как была установлена ​​сама npm . Если вы заинтересованы в установке узла в изолированной среде, вы можете попробовать использовать nvm .

Если у вас есть инструменты для сборки или другие зависимости только для разработки (например, Grunt), вы можете не захотеть связать их с приложением, которое вы развертываете. Если это так, вы хотите, чтобы он был зависимым от разработки, который указан в package.json под devDependencies . Чтобы установить пакет как зависимость от разработки, используйте —save-dev (или -D ).

Вы увидите, что пакет затем добавляется в devDependencies вашего package.json .

Чтобы установить зависимости загруженного / клонированного проекта node.js, вы можете просто использовать

npm автоматически считывает зависимости от package.json и устанавливает их.

NPM за прокси-сервером

Если ваш интернет-доступ через прокси-сервер, вам может потребоваться изменить команды установки npm, которые будут обращаться к удаленным репозиториям. npm использует файл конфигурации, который может быть обновлен через командную строку:

Вы можете найти свои настройки прокси на панели настроек вашего браузера. После того, как вы получили настройки прокси-сервера (URL-адрес сервера, порт, имя пользователя и пароль); вам необходимо настроить конфигурацию npm следующим образом.

username , password , поля port являются необязательными. Как только вы их установили, ваша npm install , npm i -g и т. Д. npm i -g работать правильно.

Работа с Node.js стала безопаснее: NodeSource начала сертифицировать модули npm

Кроме встроенных и кастомных модулей Node.js существует огромный пласт различных библиотек и фреймворков, разнообразных утилит, которые создаются сторонними производителями и которые также можно использовать в проекте, например, express, grunt, gulp и так далее. И они тоже нам доступны в рамках Node.js. Чтобы удобнее было работать со всеми сторонними решениями, они распространяются в виде пакетов. Пакет по сути представляет набор функциональностей.

Для автоматизации установки и обновления пакетов, как правило, применяются систему управления пакетами или менеджеры. Непосредственно в Node.js для этой цели используется пакетный менеджер NPM (Node Package Manager). NPM по умолчанию устанавливается вместе с Node.js, поэтому ничего доустанавливать не требуется. Но можно обновить установленную версию до самой последней. Для этого в командной строке/терминале надо запустить следующую команду:

Чтобы узнать текущую версию npm, в командной строке/терминале надо ввести следующую команду:


Для нас менеджер npm важен в том плане, что с его помощью легко управлять пакетами. К примеру, создадим на жестком диске новую папку modulesapp (В моем случае папка будет находиться по пути C:\node\modulesapp ).

Далее для примера установим в проект express . Express представляет легковесный веб-фреймворк для упрощения работы с Node.js. В данном случае мы не будем пока подробно рассматривать фреймворк Express, так как это отдельная большая тема. А используем его лишь для того, чтобы понять, как устанавливаются сторонние модули в проект.

Для установки функциональности Express в проект вначале перейдем к папке проекта с помощью команды cd . Затем введем команду

После установки express в папке проекта modulesapp появится подпапка node_modules , в которой будут хранится все установленные внешние модули. В частности, в подкаталоге node_modules/express будут располагаться файлы фреймворка Express.

Далее определим файл простейшего сервера. Для этого в корневую папку проекта modulesapp добавим новый файл app.js :

Первая строка получает установленный модуль express, а вторая создает объект приложения.

В Express мы можем связать обработку запросов с определенными маршрутами. Например, «/» — представляет главную страницу или корневой маршрут. Для обработки запроса вызывается функция app.get() . Первый параметр функции — маршрут, а второй — функция, которая будет обрабатывать запрос по этому маршруту.

И чтобы сервер начал прослушивать подключения, надо вызвать метод app.listen() , в который передается номер порта.

Запустим сервер командой node app.js :

И в адресной строке браузера введем адрес https://localhost:3000/ :

Файл package.json

Для более удобного управления конфигурацией и пакетами приложения в npm применяется файл конфигурации package.json . Так, добавим в папку проекта modulesapp новый файл package.json :

Здесь определены только две секции: имя проекта — modulesapp и его версия — 1.0.0. Это минимально необходимое определение файла package.json. Данный файл может включать гораздо больше секций. Подробнее можно посмотреть в документации.

Далее удалим из проекта каталог node_modules . То есть в папке проекта modulesapp будут два файла app.js и package.json .

Теперь снова добавим express с помощью следующей команды:

Мастер Йода рекомендует:  Разработка программного обеспечения для начинающих

Флаг —save указывает, что информацию о добавленном пакете надо добавить в файл package.json.

И после выполнения команды, если мы откроем файл package.json , то мы увидим информацию о пакете:

Информация обо всех добавляемых пакетах, которые используются при запуске приложения, добавляется в секцию dependencies .

Файл package.json играет большую роль и может облегчить разработку в различных ситуациях. Например, при размещении в разных репозиториях нередко мы ограничены выделяемым дисковым пространством, тогда как папка node_modules со всеми загруженными пакетами может занимать довольно приличное пространство. В этом случае удобнее разместить основной код проекта без node_modules. В этом случае мы можем определить все пакеты в файле package.json, а затем для загрузки всех пакетов выполнить команду

Эта команда возьмет определение всех пакетов из секций dependencies и загрузит их в проект.

devDependencies

Кроме пакетов, которые применяются в приложении, когда оно запущено, например, express, то есть в состоянии «production», есть еще пакеты, которые применяются при разработке приложения и его тестировании. Такие пакеты добавляются в другую секцию — devDependencies . В вышеприведенном примере она не определена, но если бы мы добавили какой-нибудь grunt или gulp, то они бы были именно в секции devDependencies.

Например, загрузим в проект пакет jasmine-node , который используется для тестирования приложения:

Флаг —save-dev указывается, что информацию о пакете следует сохранить в секции devDependencies файла package.json:

Удаление пакетов

Для удаления пакетов используется команда npm uninstall . Например:

Эта команда удаляет пакет из папки node_modules , в то же время в файле package.json информация о данном пакете остается. Чтобы удалить информацию также и из package.json, применяется флаг —save :

Семантическое версионирование

При определении версии пакета применяется семантическое версионирование. Номер версии, как правило, задается в следующем формате «major.minor.patch». Если в приложении или пакете обнаружен какой-то баг и он исправляется, то увеличивается на единицу число «patch». Если в пакет добавляется какая-то новая функциональность, которая совместима с предыдущей версией пакета, то это небольшое изменение, и увеличивается число «minor». Если же в пакет вносятся какие-то большие изменения, которые несовместимы с предыдущей версией, то увеличивается число «major». То есть глядя на разные версии пакетов, мы можем предположить, насколько велики в них различия.

В примере с express версия пакета содержала, кроме того, дополнительный символ карет: «^4.14.0». Этот символ означает, что при установке пакета в проект с помощью команды npm install будет устанавливаться последняя доступная версия от 4.14.0. Фактически это будет последняя доступная версия в промежутке от 4.14.0 до 5.0.0 (>=4.14.0 и app.js :

В данном случае мы получаем переданные при запуске приложению параметры.

И определим следующий файл package.json :

Здесь добавлена секция scripts , которая определяет две команды. Вообще команд может быть много в соответствии с целями и задачами разработчика.

Первая команда называется start . Она по сути выполняет команду node app.js , которая выполняет код в файле app.js

Вторая команда назвывается dev . Она также выполняет тот же файл, но при этом также передает ему два параметра.

Названия команд могут быть произвольными. Но здесь надо учитывать один момент. Есть условно говоря есть зарезервированные названия для команд, например, start , test , run и ряд других. Их не очень много. И как раз первая команда из выше определенного файла package.json называется start. И для выполнения подобных команд в терминале/командной строке надо выполнить команду

Например, для запуска команды start

Команды с остальными названия, как например, «dev» в вышеопределенном файле, запускаются так:

Например, последовательно выполним обе команды:

npm fails during 6.9.1 installation #383

Comments

Copy link Quote reply

ckehoe commented Nov 8, 2020

Version: 6.9.1
Platform: Centos 7.2

When installing the latest LTS version of node on a fresh Centos 7.2 installation the bundled version of npm 3.10.8 fails to install. Manually installing npm 3.10.9 fixes the issue. Also as a secondary issue node isn’t honoring the 4.x url and installing the latest version of the LTS.

Error:
Running transaction
Installing : 1:npm-3.10.8-1.6.9.1.1.el7.x86_64 1/2
Error unpacking rpm package 1:npm-3.10.8-1.6.9.1.1.el7.x86_64
error: unpacking of archive failed on file /usr/lib/node_modules/npm/doc: cpio: rename
Installing : 1:nodejs-6.9.1-1.el7.x86_64 2/2
error: npm-1:3.10.8-1.6.9.1.1.el7.x86_64: install failed
Verifying : 1:nodejs-6.9.1-1.el7.x86_64 1/2
Verifying : 1:npm-3.10.8-1.6.9.1.1.el7.x86_64

Steps to Reproduce:
curl —silent —location https://rpm.nodesource.com/setup_4.x | bash — && yum -y install nodejs

Workaround
yum remove -y npm
curl -L https://www.npmjs.com/install.sh | sh

This comment has been minimized.


Copy link Quote reply

chrislea commented Nov 8, 2020

It looks like there was some attempt to install an npm package along with our nodejs package. You should not do this. Our nodejs package bundles npm with it, so there is no need for a separate package, which looks like it was causing trouble.

This comment has been minimized.

Copy link Quote reply

ckehoe commented Nov 8, 2020

So i’m simply trying to install node and during the installation the version of npm that is bundled with the 6.9.1 package — which appears to be 3.10.8 — fails to install with the output I listed above in the error section. Running npm commands throw the following error after the failed installation:

[root@dev-machine]# npm —version
module.js:471
throw err;
^

Error: Cannot find module ‘npmlog’
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at /usr/lib/node_modules/npm/bin/npm-cli.js:19:13
at Object. (/usr/lib/node_modules/npm/bin/npm-cli.js:75:3)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)

The workaround that allowed me to use npm again was to remove the npm version installed with the nodejs package and install npm separately since the version in the 6.9.1 node.js bundle is failing to install correctly and needs to be fixed.

This comment has been minimized.

Copy link Quote reply

chrislea commented Nov 8, 2020

Ah, wait, I see the problem. You’re installing the package nodejs-6.9.1-1.el7.x86 which is not the one we produce. It’s coming from some other repository you’re subscribed to. Ours would be called nodejs-6.9.1-1nodesource.el7 , ref here.

This comment has been minimized.

Copy link Quote reply

ckehoe commented Nov 8, 2020 •

okay thanks! I was pointed here by the node.js team. Any suggestions where I can file an issue on this package?

This comment has been minimized.

Copy link Quote reply

chrislea commented Nov 8, 2020

I’m not sure there’s an issue to file. Whatever other repository you’re using may have a bad npm-3.10.8 package but as there’s a newer one that works, you should be able to just install that. Or, get rid of the other repository and just use ours (which just has the single nodejs package for everything). The crux of the problem you’re seeing is that you are on two different repos that both have a nodejs 6.9.1 package, which is not what you want.

This comment has been minimized.

Copy link Quote reply

nugai commented Nov 13, 2020

Thanks, guys! I had the same problem and was able to fix it thanks to the information in this thread.

I would have never figured out by myself that there could be different rpms for nodejs (and that they could be inconsistent, if not conflicting).

Начало работы с Node.js

Node Hero: Глава 1

Перевод книги Node Hero от RisingStack . Переведено с разрешения правообладателей.

Мы начнем с основ: никаких предварительных знаний Node.js не требуется. Цель этой книги — начать работу с Node.js и убедиться, что вы понимаете, как писать приложение с использованием этой платформы.

В первой главе вы узнаете, что такое Node.js, как установить её на свой компьютер и как начать с ней работать — так что в следующих главах можно будет приступить к реальной разработке. Приступим!

Node.js в двух словах

Node.js — это среда выполнения JavaScript, построенная на JavaScript-движке V8 из Chrome. В основе Node.js лежит событийно-управляемая модель с неблокирующими операциями I/O, что делает её легкой и эффективной.

Другими словами: Node.js предлагает вам возможность писать невероятно производительный серверный код с использованием JavaScript. Как говорится в официальном описании: Node.js — это среда выполнения, использующая тот же JavaScript-движок V8, который вы можете найти в браузере Google Chrome. Но этого недостаточно для успеха Node.js. В Node.js используется libuv — кросс-платформенная библиотека поддержки с акцентом на асинхронный ввод-вывод.

С точки зрения разработчика, Node.js однопоточна, но под капотом libuv использует треды, события файловой системы, реализует цикл событий, включает в себя тред-пулинг и так далее. В большинстве случаев вы не будете взаимодействовать с libuv напрямую.

Установка Node.js для старта

Последнюю версию Node.js вы можете найти на официальном сайте: https://nodejs.org/en/download/.

При таком подходе довольно легко начать работу, но если позже вы захотите добавить в систему больше версий Node.js, лучше начать использовать nvm ( node version manager) — диспетчер версий Node.js.

После его установки вы сможете использовать очень простой CLI API для смены версии Node.js:

Установка различных версий Node.js

Затем, если вы хотите проверить в работе экспериментальную версию:

Чтобы убедиться, что у вас установлена и запущена Node.js, выполните:

Если все в порядке, эта команда вернет номер версии текущего активного бинарного файла Node.js.

Использование нескольких версий Node.js

Если вы работаете над проектом, поддерживающим Node.js v4, вы можете начать использовать эту версию с помощью следующей команды:

Затем вы можете переключиться на Node.js v5 с помощью той же самой команды:

Хорошо, теперь мы знаем, как устанавливать Node.js и переключаться между её версиями, но в чём смысл?

С тех пор как был сформирован Node.js Foundation, Node.js имеет план релизов. Это очень похоже на другие проекты Linux Foundation. Это означает, что есть два релиза: стабильный и экспериментальный. В Node.js стабильными версиями с долговременной поддержкой (LTS) являются те, которые начинаются с четных чисел (4, 6, 8, …). Экспериментальные версии нумеруются нечетными числами (5, 7, …).


Мы рекомендуем использовать версию LTS в продакшене и пробовать новые возможности с экспериментальной версией.

Если вы используете Windows, здесь можно скачать альтернативу для nvm: nvm-windows .

Hello World

Чтобы начать работу с Node.js, давайте попробуем её в консоли! Запустите Node.js, просто набрав node :

Хорошо, давайте попробуем что-то напечатать:

После нажатия Enter вы получите следующее:

Не стесняйтесь играть с Node.js с помощью этого интерфейса: я обычно тестирую небольшие фрагменты кода здесь, если я не хочу помещать их в файл.

Пришло время создать наше приложение Hello Node.js!

Начнем с создания файла index.js . Откройте свою >index.js . Если вы закончили, скопируйте в него следующий фрагмент кода:

Чтобы запустить этот файл, вы должны снова открыть свой терминал и перейти в каталог, в котором размещён index.js .

Как только вы успешно переместитесь в нужное место, запустите файл, используя команду node index.js . Вы увидите, что эта команда будет выдавать тот же результат, что и раньше, выводя строку непосредственно в терминале.

Мастер Йода рекомендует:  Право «на забвение» в интернете может получить каждый

Модульность для вашего приложения

Теперь у вас есть файл index.js , поэтому пришло время перейти на следующий уровень! Давайте создадим что-то более сложное, разделив наш исходный код на несколько JavaScript-файлов с целью удобочитаемости и поддерживаемости. Чтобы начать работу, вернитесь в свою >package.json , мы сгенерируем его автоматически на следующем шаге:

Каждый проект Node.js начинается с создания файла package.json . Вы можете думать о нем как о JSON-представлении приложения и его зависимостей. Он содержит имя вашего приложения, автора (вас) и все зависимости, необходимые для запуска приложения. Мы рассмотрим раздел зависимостей позже в главе «Использование NPM».

Вы можете интерактивно генерировать файл package.json с помощью команды npm init в терминале. После запуска команды вас попросят ввести некоторые данные, например имя вашего приложения, версию, описание и так далее. Не нужно беспокоиться, просто нажимайте Enter, пока не получите сформированный JSON и вопрос is it ok? . Нажмите Enter в последний раз и вуаля: ваш package.json был автоматически сгенерирован и помещен в папку вашего приложения. Если вы откроете этот файл в своей IDE, он будет очень похож на фрагмент кода ниже.

Хорошей практикой является добавление стартового скрипта в ваш пакет package.json . Как только вы это сделаете, как показано в примере выше, вы можете запустить приложение с помощью команды npm start . Это очень удобно, когда вы хотите развернуть свое приложение у PaaS-провайдера: они могут распознать команду start и использовать её для запуска приложения.

Теперь давайте вернемся к первому созданному вами файлу под названием index.js . Я рекомендую оставить этот файл очень компактным: только подключение самого приложения (файл index.js из подкаталога /app , созданного ранее). Скопируйте следующий код в свой файл index.js и сохраните:

Теперь пришло время приступить к созданию реального приложения. Откройте файл index.js из папки /app , чтобы создать очень простой пример: добавление массива чисел. В этом случае файл index.js будет содержать только числа, которые мы хотим добавить, а логика, требующая вычислений, должна быть помещена в отдельный модуль.

Вставьте этот код в файл index.js в каталоге /app .

Теперь вставьте фактическую бизнес-логику в файл calc.js , который можно найти в той же папке.

Чтобы проверить, всё ли вы сделали правильно, сохраните эти файлы, откройте терминал и введите npm start или node index.js . Если вы все сделали правильно, вы получите ответ: 19. Если что-то пошло не так, внимательно просмотрите лог в консоли и найдите проблему на его основе.

В следующей главе под названием «Использование NPM» мы рассмотрим, как использовать NPM — менеджер пакетов для JavaScript.

Как установить последние версии NodeJS и NPM?

Я заметил на https://nodejs.org/ веб-сайт, на котором в настоящее время находится узел v 0.12.0 .

Может ли кто-нибудь дать мне знать, как установить последнюю версию узла вместе с npm (команды терминала, пожалуйста)?

19 ответов

Свежая установка

Использовать PPA NodeSource. Подробнее см. инструкции по установке . Сначала выберите нудную версию Node.js и добавьте в нее источники:

Затем установите пакет Node.js.

Пакет P.S .: curl должен быть установлен на сервере для этих строк кода.

Обновление

Если у вас уже установлен и обновлен nodejs , сначала удалите текущую установку и установите ее снова, используя сценарии выше.

Вообще говоря, загрузка произвольных данных из URL-адреса в сеанс корневой оболочки не является хорошей идеей, и я хочу, чтобы люди перестали продавать ее как решение для всего: «Пожалуйста, просто запустите этот скрипт, который я вам отправляю, а также в то время как мы в этом — у меня есть мост, который вы, вероятно, будете интересоваться покупкой ».

В качестве альтернативы, вот «способ Ubuntu» сделать то же самое, где вы можете увидеть, как система обновляется, и знать, какие репозитории и какие ключи добавляются в вашу конфигурацию системы:

Это последнее (в момент написания) версия Nodejs 7. Другие версии также можно получить с простым изменением URL-адреса репо — обратитесь за дополнительной информацией к документации nodeource.com.

Node.js v4.x:

Если вы хотите обновить внутри npm , вы можете использовать команду n :

Это устанавливает пакет n, который вы можете использовать для переключения версий NodeJS и использует его. Сравнение с альтернативными вариантами NVM и команд: SO . Существует также запись в блоге .

Чтобы установить NPM,

Эта команда будет устанавливать узел на основе вашей нужной вам версии.

Вы можете легко установить последнюю версию с помощью инструкции ниже.

Vesion 7.x — последняя версия узла.

sudo apt-get install nodejs

Над строкой будет установлена ​​nodejs.

sudo apt-get install build-essential

Это установит необходимые модули для правильной работы nodejs.

Теперь проверьте, правильно ли установлены nodejs в конце.

Это вернет установленную версию nodejs.

Это вернет установленную версию npm. Надеюсь, это поможет .

NVM (диспетчер версий узлов)


NVM устанавливает для вас как последний стабильный узел, так и npm

Теперь протестируйте его с помощью фиктивного пакета:

Поскольку для каждой новой оболочки необходимо найти источник, вы, вероятно, захотите добавить следующее к вашему .bashrc :

позволяет использовать несколько версий узла и без sudo

аналогичен Ruby RVM и Python Virtualenv, который считается лучшей практикой в ​​сообществах Ruby и Python.

загружает предварительно скомпилированный двоичный файл, если это возможно, и если он не загружает источник и компилирует его для вас

Мы можем легко переключать версии узлов с помощью:

Протестировано в Ubuntu 17.10.

Node.js доступен как пакет snap во всех поддерживаемых версиях Ubuntu. Специфичные для Node.js, разработчики могут выбрать один из поддерживаемых в данный момент выпусков и получать регулярные автоматические обновления непосредственно от NodeSource. В настоящее время доступны версии 6, 8 и 9 версии Node.js с обновлением Snap Store в течение нескольких часов или минут выпуска Node.js.

Узел может быть установлен с помощью одной команды, например:

Доступ к узлу можно получить с помощью команды node , например:

Замените your-username в приведенной выше команде с вашим собственным именем пользователя. Затем запустите npm -v , чтобы проверить, обновлена ​​ли версия npm. В качестве примера я проверил, что npm был обновлен, проверил версию уже установленного пакета с именем пряжа с помощью команды npm list yarn , а затем обновил существующий пакет пряжи до последней версии с помощью команда npm update yarn

Пользователи могут переключаться между версиями Node.js в любое время без необходимости привлечения дополнительных инструментов, таких как nvm (Node Version Manager), например:

Пользователи могут тестировать версии Node.js, которые могут быть установлены с последней версии, которые в настоящее время отслеживают работу Node.js версии 10, путем переключения с помощью

Этот подход рекомендуется только тем пользователям, которые хотят участвовать в тестировании и сообщать об ошибках вверх по течению.

Установка последних версий Node.js и NPM в Linux

В этой инструкции будет показано, как установить последнюю версию Nodejs и NPM в дистрибутивы Debian/Ubuntu/Linux Mint, RHEL/CentOS и Fedora.

Nodejs – это лёгкая и эффективная платформа JavaScript, которая построена на основе движка Chrome V8 JavaScript, а NPM – это стандартный менеджер пакетов в NodeJS. Вы можете использовать их для построения масштабируемых сетевых приложений.

Шаг 1: Добавление репозитория NodeSource

В стандартных репозиториях вашего дистрибутива могут иметься Node.js и NPM. Но обычно это достаточно старые версии. Свежие версии Node.js и NPM доступны в официальном репозитории бинарных файлов NodeSource дистрибутивов Enterprise Linux, Fedora, Debian и Ubuntu, которые поддерживаются командой Nodejs. Вам нужно добавить этот источник приложений в вашу систему, чтобы иметь возможность установить последние пакеты Nodejs и NPM.

Важно: Ниже RHEL 5 и CentOS 5, пакеты Node.js зависят от репозитория EPEL, скрипт сделает проверку и в случае, если он не установлен, будут предоставлены инструкции.

Для добавления репозитория для последних версий Node.js v6 LTS используйте следующую команду как рут:

На RHEL, CentOS и Fedora

В качестве альтернативы вы можете добавить репозиторий Node.js v7 следующей командой.

На Debian, Ubuntu и Linux Mint

Шаг 2: Установка последних Nodejs и NPM

Теперь вы можете установить на вашу систему Nodejs и NPM используя следующую команду:

На RHEL, CentOS и Fedora

На Debian, Ubuntu и Linux Mint

Опционально: на вашей систему нужны инструменты разработчика, такие как gcc-c++ и make чтобы собирать нативные дополнения из npm.

Шаг 3: Тестирование последних Nodejs и NPM

В качестве простейшего теста вы можете проверить версии nodejs и NPM следующими командами:

На RHEL, CentOS и Fedora

На Debian, Ubuntu и Linux Mint

Для выполнения комплексного теста имеется специальный скрипт, вы можете запустить его следующим образом:

Вот и всё, теперь Nodejs и NPM установлены и готовы для использования в вашей системе.

Управления пакетами Node.js в Linux. Пакетный менеджер NPM

Node.js – это довольно популярная платформа для ведения серверной разработки веб-приложений, а также других сетевых приложений. Функционал самой платформы Node.js постоянно совершенствуется и дополняется при помощи программных пакетов. Как следствие, для управления и настройки требуемого функционала Node.js существует специальный инструмент — пакетный менеджер NPM. О том, какие базовые возможности по управлению пакетами Node.js имеются у NPM и как ими пользоваться, будет рассмотрено в данной статье.

Некоторые полезные функции NPM

Для начала установить NPM и Node.js (на примере Ubuntu) можно командой:

Соответствующие пакеты предусмотрены в стандартных репозиториях практически любого дистрибутива Linux.
После установки NPM нужно настроить его для использования функции автодополнения команд. Для этого нужно внести некоторые настройки в конфигурационный файл пользовательской среды

После этого ввод команд NPM будет сопровождаться автодополнением, что очень удобно и экономит много времени при работе с пакетами. Автодополнение включается по нажатию клавиши «Tab».
Второй полезной функцией является подкоманда help, которая позволяет получать справку по другим подкомандами, например:

В результате будет выведено содержимое руководства по использованию указанной команды. Также имеется возможность использовать поиск по разделам справки, используя подкоманду help-search:

В качестве параметра «требуемый_термин» можно указать интересующее действие, например «update» или «install». В результате будут показаны соответствующие разделы справки. Очень полезно, когда нужно узнать, какая команда выполняет те или иные действия.

Глобальные и локальные пакеты

Пакеты Node.js бывают локальные и глобальные. Первые устанавливаются в каталог с проектом, для поддержки которого они необходимы и доступны только этому проекту. Глобальные пакеты устанавливаются в каталог

/.npm/ (а также в /usr/local/lib/ , в зависимости от дистрибутива) и могут быть доступны для использования и поддержки во всех проектах. При локальном варианте установки пакетов они по-умолчанию помещаются в подкаталог node_modules/ , в каталоге проекта.

Этот механизм разделения пакетов на глобальные и локальные позволяет разработчикам гибко управлять переносимостью своих приложений в целях уменьшения времени их разворачивания в новой среде разработки или напротив — избавляя от всего лишнего. К тому же, такой подход позволяет гибко настраивать и саму среду разработки, рационально задействовав некоторые особенности и функции различных пакетов.

По-умолчанию пакетный менеджер NPM предполагает, что все пакеты установлены локально. Поэтому, для того, чтобы получить доступ к пакетам, установленным глобально, необходимо в командах npm использовать опцию «-g» или «—global».
Поиск информации о пакетах
Для начала нужно определить, какие вообще пакеты установлены. Список локальных пакетов (для конкретного проекта) позволяет получить команда:

Мастер Йода рекомендует:  Скролинг в броузере отличный от серого цвета


В данном примере команда выполняется в каталоге с проектом и список локальных пакетов пуст, поскольку они не устанавливались. Но следует заметить, что вывод представляется в виде дерева. Несмотря на то что локальных пакетов для проекта test_project ещё нет, однако NPM в базовом варианте предоставляет некоторые глобальные пакеты. Чтобы их увидеть, нужно выполнить команду:

Как можно видеть, список может быть довольно большим.
Для того, чтобы открыть оболочку того или иного пакета, следует использовать подкоманду explore:

В данном примере была открыта оболочка самого пакета NPM. По завершению работы в оболочке пакета нужно набрать команду exit – будет осуществлён перевод в оболочку изначального проекта.

Чтобы узнать, какой каталог является корневым для пакетной среды проекта, нужно использовать подкоманду root:

Чтобы узнать корневой каталог проекта, существует подкоманда prefix:

Расположение исполняемых файлов пакетов можно узнать подкомандой bin:

Поиск и установка пакетов NPM

С помощью NPM можно производить поиск необходимых пакетов, используя подкоманду search. Хранилище доступных пакетов предоставляется ресурсом https://www.npmjs.org. Например, если проекту необходим PHP-фреймворк CodeIgniter, то найти его можно, выполнив команду:

В результате буде выведен довольно длинный список пакетов с описанием каждого из них. Поскольку проектов, связанных с искомым CodeIgniter может быть много, то изучение их описаний поможет быстро найти в списке именно тот, который нужен. Далее, установить выбранный пакет позволяет команда:

В результате будет выполнена локальная установка пакета для текущего проекта в его директории. Для глобальной установки, чтобы фреймворк CodeIgniter был доступен для других проектов, при установке необходимо использовать опцию «-g»:

В обоих случаях будет произведена загрузка пакета со всеми его зависимостями, а также произведена их установка. Для локальной установки для проекта предварительно необходимо перейти в каталог с этим проектом:

Удаление и согласование зависимостей пакетов

В большинстве случаев для проектов Node.js необходима и локальная и глобальная установка пакетов. Это довольно расточительно в плане использования дискового пространства. Поэтому для этого случая есть способ «связывания» глобального и локального пакетов между собой. Он заключается в создании ссылки из локальной установки пакета на глобальную или наоборот. Сделать это можно следующим образом: для начала нужно удалить пакет, например его локальную версию:

Теперь необходимо «связать» глобальную (которая не удалялась) копию пакета с его локальной копией. Создав в каталоге проекта (локальной среде пакетов) символическую ссылку на глобальный пакет:

Естественно, для данного случая необходимо заранее переместиться в каталог с необходимым проектом, в котором нужно сделать связывание с глобальным пакетом. В результате оба пакета (локальный и глобальный) будут доступны проекту. Символические ссылки при необходимости можно удалять также, как и сам пакет.

Если же имеется только локально установленный пакет, то ссылку на глобальный можно создать прямо из каталога локальной установки самого пакета. Но при этом подкоманда link даётся без дополнительный параметров:

Некоторые пакеты имеют одни и те же зависимости. Рационально использовать одну копию этих зависимостей для нескольких пакетов, для которых они необходимы. Однако, по-умолчанию при установке пакетов NPM одни и те же зависимости устанавливаются для каждого пакета. Для того, чтобы исправить эту ситуацию существует подкоманда dedupe. Она заставляет пакеты с одинаковыми зависимостями «делиться» ими из одной установки, отслеживая и анализируя подобные ситуации. Например для того, чтобы дедуплицировать использование зависимостей для пакета codeigniter, необходимо выполнить подкоманду dedupe в каталоге с этим пакетом:

Бывает и так, что дедуплицированные зависимости больше не используются. Это происходит потому, что они ранее были дедуплицированы. Т. е. перемещены на другой уровень в системе каталогов проекта, а теперь их материнский пакет или модуль был удалён. В этом случае такие зависимости автоматически удалены не будут, однако они присутствуют без надобности. Для того, чтобы в подобных случаях очистить проект от неиспользуемых зависимостей используется подкоманда prune:

В результате эта команда, вызванная в каталоге проекта, удалит все неиспользуемые для него зависимости.

Обновление пакетов

Пакетный менеджер NPM позволяет всегда узнать, каким пакетам требуется обновление. Для этого достаточно выполнить подкоманду uotdated:

В результате будет показан список пакетов, для которых имеются обновления с указанием версий этих обновлений. Но для того, чтобы корректно обновить сам пакет, часто требуется отредактировать файл package.json для этого пакета, указав требуемую версию обновления. И только после этого необходимо выполнить команду:

В результате, если файлы package.json были отредактированы правильно, NPM сам выполнит полное обновление пакетов.

Заключение

В заключение необходимо обратить внимание на то, что пакетный менеджер NPM действительно отлично справляется с теми задачами, для которых предназначен. У разработчиков нет необходимости тратить время на загрузку и установку пакетов (со всеми их зависимостями) вручную. Используя NPM можно развернуть даже самый сложный проект буквально за несколько минут.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Модули NPM не будут установлены глобально без sudo

Я только что переустановил Ubuntu 12.04 LTS, и прежде всего я сделал эти шаги:

Установил узел через менеджер пакетов со следующим скриптом

Попытался установить генераторы yeoman, express, n, yeoman по всему миру, и все они вернули ту же ошибку

нпм ERR! Ошибка: EACCES, символическая ссылка ‘../lib/node_modules/n/bin/n’

нпм ERR! Пожалуйста, попробуйте запустить эту команду снова как root/Administrator.

нпм ERR! Система Linux 3.8.0-29-универсальная

нпм ERR! команда «/usr/bin/node» «/usr/bin/npm» «install» «-g» «-d» «n»

нпм ERR! cwd /home/heberlz

нпм ERR! узел -v v0.10.20

нпм ERR! npm -v 1.3.11

нпм ERR! путь../lib/node_modules/n/bin/n

нпм ERR! код EACCES

нпм ERR! errno 3

нпм ERR! Ошибка стека: EACCES, символическая ссылка ‘../lib/node_modules/n/bin/n’

нпм ERR! Дополнительные подробности регистрации можно найти в:

нпм ERR! /home/heberlz/npm-debug.log

нпм ERR! не в порядке код 0

Рекурсивно вернул себе право собственности на следующие папки

/.npm, /usr/lib/node, /usr/lib/node_modules и следующие символические ссылки /usr/bin/node, /usr/bin/nodejs, но безуспешно

Мне нужно установить Yeoman и его генераторы без sudo, чтобы потом не было проблем:(

13 ответов

Ubuntu 12.04 и использование PPA Криса Ли для установки следующих работ для меня:


и добавление $HOME/.npm-packages/bin в $PATH

добавить в .bashrc

Если у вас уже есть $HOME/bin на вашем пути, простое решение просто.

  • Новые команды узла теперь будут установлены в вашем $HOME/bin каталог.
  • Не нужно менять свой путь!

Так как это обсуждение действительно о снижении рисков безопасности работы sudo Вы также должны знать, что любое приложение узла может потенциально устанавливать имя приложения, которое не совпадает с именем зарегистрированного пакета узла, которое, по вашему мнению, вы устанавливаете. Таким образом, существует риск безопасности, что npm install заменит существующую системную команду или команду, которая у вас уже есть $HOME/bin , Если вы обеспокоены, проверьте bin , а также scripts свойства в package.json файл приложения, которое вы устанавливаете первым.

В общем, безопаснее всего:

  • (место $HOME/bin последний на вашем пути, поэтому системные команды не заменяются.
  • (б) не включать «.» или любой относительный путь в вашем $PATH так что вы случайно не запускаете команду, которая находится в текущем каталоге.

По состоянию на октябрь 2014 года:

Node.js доступен в репозитории двоичных дистрибутивов Debian и Ubuntu для NodeSource.

Устаревший ответ:

Самый быстрый способ без использования sudo подобен описанному здесь isaac

Я настоятельно рекомендую вам не управлять пакетами с помощью sudo! Пакеты могут запускать произвольные сценарии, что делает выполнение команды менеджера пакетов такой же безопасной, как стрижка бензопилой. Конечно, это быстро и определенно преодолеет любые препятствия, но вы, возможно, захотите, чтобы это препятствие оставалось там.

Я рекомендую сделать это один раз вместо:

РЕДАКТИРОВАТЬ:

Существуют определенные проблемы с безопасностью и функциональные ограничения, касающиеся смены владельца / usr / local для текущего пользователя:

Сказав это, если вы хотите установить глобальный модуль без использования sudo, я не вижу лучшего решения (с прагматической точки зрения), чем упомянуто. Безопасность и простота использования — это очень широкая тема, и на нее нет простого ответа — она ​​зависит только от ваших требований.

Проблема заключалась в том, что я установил узел с помощью sudo, чтобы избежать ошибок при глобальной установке модулей npm, один НЕ ДОЛЖЕН устанавливать узел с помощью sudo.

Моим решением было переустановить узел таким образом:

Загрузите последние стабильные исходные узлы с сайта nodejs.org # в моем случае node-v0.10.20.tar.gz

tar -zxf node-v0.10.20.tar.gz # uncompress sources

cd node-v0.10.20 #enter несжатая папка

sudo chown -R $ USER /usr/local

./configure —prefix = /usr/local && make && make install

Стоит отметить, что в моем случае не будет работать только владение папкой /usr/local, поскольку сама установка узла была выполнена с помощью sudo

Последний шаг для установки yeoman: #although at yeoman.io говорит, что выполнение «npm install -g yo» уже устанавливает bower и grunt, есть некоторые подмодули grunt, которые не работают, поэтому я исправил это, установив его сам

npm install -g grunt

npm install -g yo

npm install -g generator-angular

Установка последних версий Node.js и NPM в Linux

В этой инструкции будет показано, как установить последнюю версию Nodejs и NPM в дистрибутивы Debian/Ubuntu/Linux Mint, RHEL/CentOS и Fedora.

Nodejs – это лёгкая и эффективная платформа JavaScript, которая построена на основе движка Chrome V8 JavaScript, а NPM – это стандартный менеджер пакетов в NodeJS. Вы можете использовать их для построения масштабируемых сетевых приложений.

Шаг 1: Добавление репозитория NodeSource

В стандартных репозиториях вашего дистрибутива могут иметься Node.js и NPM. Но обычно это достаточно старые версии. Свежие версии Node.js и NPM доступны в официальном репозитории бинарных файлов NodeSource дистрибутивов Enterprise Linux, Fedora, Debian и Ubuntu, которые поддерживаются командой Nodejs. Вам нужно добавить этот источник приложений в вашу систему, чтобы иметь возможность установить последние пакеты Nodejs и NPM.

Важно: Ниже RHEL 5 и CentOS 5, пакеты Node.js зависят от репозитория EPEL, скрипт сделает проверку и в случае, если он не установлен, будут предоставлены инструкции.

Для добавления репозитория для последних версий Node.js v6 LTS используйте следующую команду как рут:

На RHEL, CentOS и Fedora

В качестве альтернативы вы можете добавить репозиторий Node.js v7 следующей командой.

На Debian, Ubuntu и Linux Mint

Шаг 2: Установка последних Nodejs и NPM

Теперь вы можете установить на вашу систему Nodejs и NPM используя следующую команду:

На RHEL, CentOS и Fedora

На Debian, Ubuntu и Linux Mint

Опционально: на вашей систему нужны инструменты разработчика, такие как gcc-c++ и make чтобы собирать нативные дополнения из npm.

Шаг 3: Тестирование последних Nodejs и NPM

В качестве простейшего теста вы можете проверить версии nodejs и NPM следующими командами:

На RHEL, CentOS и Fedora

На Debian, Ubuntu и Linux Mint

Для выполнения комплексного теста имеется специальный скрипт, вы можете запустить его следующим образом:

Вот и всё, теперь Nodejs и NPM установлены и готовы для использования в вашей системе.

Добавить комментарий