НПМ?
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 searchwebpack
server OR npm swebpack 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.
Спасибо.