НПМ?

NPM расшифровывается как Node Package Manager. Это важнейший инструмент для работы с узловыми приложениями. NPM используется для извлечения сторонних узловых модулей (библиотек JavaScript), которые могут понадобиться приложению для разработки, тестирования или производства. NPM также используется для запуска тестов и инструментов, используемых в процессе разработки.

Проверка текущих версий:

node -v
npm -v

Обновите свою версию npm:

npm i -g npm@latest

Создание package.json:

Первый файл, который будет прочитан! Это файл JSON, содержащий информацию о вашем проекте и имеющий различные параметры. В нем перечислены все зависимости (модули) для нашего проекта.

npm init
npm init -y
npm init --yes
npm init -f
npm init --force

помощь:

Есть несколько способов получить помощь в npm.
npm COMMAND_NAME -h предоставит дополнительную информацию в самой консоли. Пока npm help COMMAND_NAME откроет справку в браузере.
Поиск команды с ключевым словом: npm help-search remove.

npm help install
npm install -h
#list of supported scripts by npm
npm help npm-scripts

Установка значений по умолчанию

В какой-то момент потребуется установка, получение и удаление данных по умолчанию, таких как имя автора, лицензия, адрес электронной почты ... Https://docs.npmjs.com/misc/config
npm set ... не хватает npm config set.
Вся конфигурация находится в папке .npmrc пользователя каталог.

npm set init-author-name 'SeifAllah'
npm get init-author-url 
npm config delete init-author-email

Установка пакетов:

Вместо того, чтобы набирать npm install, вы можете просто использовать сокращениеnpm i.
, это добавит его в ваш локальный проект.

npm install lodash OR
npm i lodash

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

npm audit fix

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

Установка глобально:

npm install -g nodemon OR
npm install --global nodemon

Команда npm root -g сообщит вам, где именно на вашем компьютере находится это глобальное место установки.

Установка с конкретной версией:

npm i lodash@latest OR
npm i [email protected]

Установка с хоста контроля версий (Github)

npm i https://github.com/sindresorhus/gulp-debug OR
npm i sindresorhus/gulp-debug

Устанавливаем пакет и сохраняем его как зависимость:

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

#save as dependency 
npm i express -S
npm i express --save
#install without any prefix(no carrot or Tilda,the package version #won't be changed when npm update is executed
npm i express -save --save-exact
npm i express -P
npm i express --save-prod
#save as devDependency
npm i grunt -D
npm i grunt --save-dev
##install without save to package.json##
npm i express --no-save

Установка нескольких пакетов с одинаковым префиксом:

#long way to install packages
npm i webpack
npm i webpack-cli
npm i webpack-dev-server
#shorter way to write them in one line
npm i webpack webpack-cli webpack-dev-server
#simple and cleaner way
npm i webpack webpack{-cli,-dev-server}

Список установленных пакетов:

npm ls - это сокращение от npm list

#list all installed packages as well as all of their dependencies
npm ls 
#list only direct dependencies of current project
npm ls --depth=0
#list of all of your globally installed packages
npm ls -g — depth 0 OR
#list dependency tree which involves the package
npm ls package_name
#show description of each package(project url, description...)
npm list --depth 0 --long true // tree view 
npm list --depth 0 --json true //json format
#show dev/prod dependecies
npm list --depth 0 --prod true
npm list --depth 0 --dev true

Вывод устаревших пакетов

npm outdated

Очистка кеша

#force cleaning the cache
npm cache clean -f

Деинсталляция / Удаление пакетов

npm uninstall express OR
npm rm express OR
npm un express OR
npm r express
npm rm express --no-save (remove from node_modules but keep it in package.json)

Если вы встретили записи repository и homepage в файле package.json, вы можете запустить:

...
"author": "Seif Alla BA",
"main": "dist/index.js",
"url": "  https://github.com/seifallah",
"repository": {
  "type": "git",
  "url": "git+https://github.com/seifallah/react-unstated.git"
},
"keywords": ["npm", "react"],
"license": "MIT",
"homepage": "https://baroradeco.blogspot.com",
...

тогда вы можете запустить одну из этих команд.

#repo will open the url of the repo
npm repo
npm home
npm docs

Создание / удаление виртуальной ссылки на пакет:

запустите npm link, чтобы создать виртуальную ссылку на ваш локальный пакет, имитируя npm install.Более подробную информацию можно найти здесь.

#make the package linkable
#inside the package:
npm link
#go to the application and link to the package:
npm link package_name
#remove the link between the packages:
npm unlink package_name

создание .tgz файла

Если вы столкнулись с проблемами с npm link, есть npm pack. Эта команда создает .tgz файл точно так же, как если бы вы собирались опубликовать пакет в репозитории npm. Он извлекает имя и версию из package.json, в результате чего получается файл типа package-name-0.0.0.tgz. Его можно скопировать, загрузить или отправить коллеге. Это именно тот файл, который будет загружен в npm, если вы его опубликуете.

#prepare the package to be packed:
~/workspace/package-name $ npm pack
#install the package into your application specifying the full path
~/workspace/some-application $ npm install home/package-name-0.0.0.tgz

Перечислите доступные скрипты в package.json:

cat package.json (show package.json file) OR 
npm run

Запуск скриптов / тестов:

"scripts": {
"styleguide": "styleguidist server",
"start": "npm-run-all -p start-js watch:less",
"prebuild": "  ./build",
"build": "react-scripts-ts build",
"buildTest": "react-scripts-ts --max_old_space_size=4096 build",
"buildRelease": "react-scripts-ts build",
"postbuild": " styleguide && ‘echo NPM is awesome!’",
"test": "react-scripts-ts test --env=jsdom",
"eject": "react-scripts-ts eject",
"tslint": "tslint -p ./tsconfig.json -c ./tslint.json -t verbose",
"go_parallel": "npm-run-all --parallel script1 script2",
"go_serial": "npm-run-all --serial script1 script2",
...
}

Чтобы запустить один из приведенных выше скриптов, нам нужно ввести:

npm start OR
npm run buildRelease OR
node filename OR
nodemon filename 
#run scripts in parallel or serial mode:
npm run go_parallel
#run a test script:
npm run tests OR
npm run test OR
npm run t

Если вы создаете свои собственные сценарии NPM, перед ним должен стоять run-script или run, чтобы они выполнялись правильно.

npm run hello

Скрипты хуков (pre, post):

#any script can be pre or post fixed:
npm run prebuild OR
npm run postbuild

Чтобы предотвратить вывод журналов NPM по умолчанию на консоль при выполнении сценария

#tslint is our scriptname
npm run --silent tslint

Связывание скриптов NPM:

Вы можете объединить несколько команд в цепочку, используя && .

"scripts": {
"postbuild": " styleguide && ‘echo NPM is awesome!’",
}

Запуск локально установленной команды:

#from the commadline:./node_modules/.bin/executable_cmd
./node_modules/.bin/mocha

Поиск пакета

npm search webpack server OR 
npm s webpack server

Получение информации о пакетах

npm view webpack OR
npm v webpack 
npm view webpack version OR
#All versions of specific package:
npm view webpack versions

Перечислите переменные среды NPM в PATH:

npm run env | grep npm_

Большинству переменных будет предшествовать npm_config_ ****.

Использование среды NPM / пользовательской переменной в package.json:

"scripts": {  
"build": "echo  $npm_config_fetch_retry_maxtimeout"
}

Подключитесь к учетной записи npmjs.com:

Если вы собираетесь опубликовать свой пакет в Интернете, вам необходимо подключиться к npmjs.com со своего компьютера.
Чтобы узнать больше о публикации локального пакета. Отметьте краткую статью и эту.

npm adduser OR
npm login

если вы забыли свое имя пользователя, вы можете запустить:

npm whoami

готовы опубликовать ваш новый пакет с ограниченной областью видимости (@ username / package_name) в первый раз.

npm publish --access=public 

Чтобы опубликовать обновление, просто снимите флажок access = public.

npm publish

Синхронизируйте версию пакета с тегом GitHub:
После публикации в npm git tag PACKAGE-VERSION, затем git push --tags. Он будет отмечен как выпущенный на вкладке выпуска Github.

Версия и значение (major.minor.patch)

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

"webpack": "^4.41.2",
 "lodash": "~4.17.15"

Если версия пакета имеет символ моркови, это означает, что она принимает только незначительные изменения или исправления.

Если в версии пакета есть символ Тильды, это означает, что он принимает только изменения патчей.

Alpha ›beta› rc ›stable (1.0.0)
* rc: релиз-кандидат.

npm version major|minor|patch
#npm version will increment by one the chosen type.
npm version patch
#to publish the new changes
npm publish

В случае обновления самодельного пакета git version … автоматически добавит git commit —m 'NEW-PACKAGE-VERSION' и выполнит git tag NEW-PACKAGE-VERSION. Затем пользователю нужно сделать только dogit push --tags, затем git push и, наконец, npm pusblish, чтобы отправить последние изменения в реестр npm.

Объяснение блокировки пакета:

когда вы загружаете конкретный проект, вы в основном удаляете папку node_modules и загружаете проект в GitHub.

Когда сторонний разработчик подключается к проекту и устанавливает необходимые зависимости с помощью npm install. Он в основном просматривает файл блокировки пакета и устанавливает точную версию, чтобы избежать конфликтов.

Файл блокировки пакета будет обновлен при запуске npm update или добавлении нового пакета.

Ссылки











NVM и NPM



и, наконец, документация по npmjs.

Спасибо.