что такое нпм
npm — это менеджер модулей Node, и он чрезвычайно мощный. Это одна из главных причин успеха Node. Благодаря npm мы можем устанавливать модули, написанные другими, всего одной строкой команды.
npm install
npm install
Команда используется для установки модуля вnode_modules
содержание.
$ npm install <packageName>
--save-dev -D 本地
--save -S 生产
-g 全局
$ npm uninstall <packageName>
Перед установкойnpm install
сначала проверю,node_modules
Существует ли уже указанный модуль в каталоге. Если он существует, переустановка невозможна, даже если в удаленном репо уже есть новая версия.
Если вы хотите, модуль должен быть установлен npm независимо от того, установлен он или нет.Принудительно переустановить(нет необходимости удалять модули узлов), вы можете использовать-f
или--force
параметр
$ npm install <packageName> --force // 强制更新
npm update
Если вы хотите обновить установленные модули, необходимо использоватьnpm update
Заказ.
$ npm update <packageName>
Сначала он отправится в удаленный репозиторий, чтобы запросить последнюю версию, а затем запросит локальную версию. Если локальная версия не существует или удаленная версия новее, она будет установлена.
Процесс установки модуля
- проблема
npm install
Заказ - npm запрашивает в реестре URL-адрес сжатого пакета модуля.
- Загрузите сжатый пакет и сохраните его в
~/.npm
содержание - Разархивируйте архив в папку текущего проекта
node_modules
содержание
общие команды нпм
npm init --yes(初始化配置) -y
npm i (会根据package.json里面的键dependencies,devDependencies来安装相对应的包)
npm i 包(默认安装一个最新的包,这个包在node_modules文件夹里面,并且会更新在你的package.json文件)
npm i 包@3.0.0(安装一个指定版本的包,会更新在你的package.json文件)
npm i 包 --save-dev(安装一个开发环境所需要的包,会更新在你的package.json文件) -D
npm i 包 --save(安装一个生产环境所需要的包,会更新在你的package.json文件) -S
npm uninstall 包(卸载一个包,会更新在你的package.json文件)
npm update 包(更新此包版本为最新版本,会更新在你的package.json文件)
npm run 脚本键(会根据package.json里面的"scripts"里面的脚本键自动执行相对于的值)
npm publish (根据package.json的name发布一个包) 发布到npm仓库
npm unpublish 包名 --force(卸载npm网站上自己上传的包)
Конфигурация файла packageJson
{
"name": "axios", //发布的包名,默认是上级文件夹名。不得与现在npm中的包名重复。包名不能有大写字母/空格/下滑线!
"version": "2.2.2",//你这个包的版本,默认是1.0.0。对于npm包的版本号有着一系列的规则,模块的版本号采用X.Y.Z的格式,具体体现为:
1、修复bug,小改动,增加z。
2、增加新特性,可向后兼容,增加y
3、有很大的改动,无法向下兼容,增加x
"description": "用来请求接口,懂了吗二货", // 介绍
"main": "index.js",// 入口文件,默认是Index.js,可以修改成自己的文件,这个很重要,当你在实际项目使用的时候,let a = require("包名"),它就去会去找对应的文件路径哦。
"scripts": { // 快捷命令,在package.json同目录下输入命令 npm run 键 就会执行 相对应的命令
"bulid": "npx webpack --config myConfig.js",
"start": "xxx",
//例如 输入 npm run bulid 就会执行npx webpack --config myConfig.js的命令 。
// npm start 省略run
},
"keywords": [],
"author": "王二蛋",
"license": "ISC",// 这个直接回车,开源文件协议吧,也可以是MIT,看需要吧。
"dependencies": { // 生产环境所依赖的包
"jquery": "^3.4.1",
"sea": "^1.0.2"
},
"devDependencies": { // 开发环境所依赖的包
"webpack": "^4.41.6"
}
}
Изменить путь загрузки npm по умолчанию и путь кеша
Команда npm config ls может просматривать информацию об установке npm и путь загрузки по умолчанию.
D:\software\cmder\cmder>npm config ls
; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.13.4 node/v12.14.0 win32 x64"
; builtin config undefined
prefix = "C:\\Users\\DELL\\AppData\\Roaming\\npm"
; node bin location = D:\SoftWareInstall\nodejsIns\node.exe
; cwd = D:\software\cmder\cmder
; HOME = C:\Users\DELL
; "npm config ls -l" to show all defaults.
Обратите внимание, что путь загрузки npm по умолчанию находится в C:\Users\DELL\AppData\Roaming\npm, где AppData является скрытой папкой, в представлении для проверки пунктов меню [скрыть] можно увидеть папку AppData.
???
// 更改npm默认的缓存路径
npm config set cache "D:\TempDate\nodedata\cache"
// 更改npm默认的下载路径
npm config set prefix "D:\TempDate\nodedata\download"
После изменения пути кеша и пути загрузки проверьте еще раз
D:\software\cmder\cmder>npm config ls
; userconfig C:\Users\DELL\.npmrc
cache = "D:\\TempDate\\nodedata\\cache"
prefix = "D:\\TempDate\\nodedata\\download"
Итак, давайте представим, как создать свой собственный модуль первого узла и загрузить этот модуль на NPM, чтобы другие могли использовать наш модуль
Создайте первый модуль узла
Модуль Node.js — это пакет кода, опубликованный в npm,
Первым шагом в создании нового модуля является создание файла package.json. Вы можете использовать npm init для создания файла package.json. Во время этого процесса командная строка будет постепенно предлагать вам ввести информацию об этом модуле. Необходимо указать имя и номер версии модуля.
Вам также нужен входной файл, Если бы вы использовали значение по умолчанию, это был бы index.js. После создания файла package.json вы начнете записывать содержимое пакета кода. Вот самый простой пример, напишите функцию для экспорта в index.js по умолчанию, Эту функцию можно импортировать или использовать в чужом коде.
exports.showMsg = function () {
console.log("This is my first module");
};
В этом случае ваш модуль узла создал
Как опубликовать на сервере npm
Зарегистрируйте npm-аккаунт
Требуется первый вход в систему,npm loginХраните сертификат локально, чтобы вам не нужно было входить в систему каждый раз позже.
Чтобы войти в систему, вам нужно ввести имя пользователя, пароль и адрес электронной почты, которые были заполнены при регистрации.
начать публикацию
npm publishОпубликовать пакет
Используйте внимание cnpm, чтобы сообщить об ошибке: no_perms Приватный режим включен, только администратор может публиковать этот модуль Просто верните его в исходное состояние **реестр конфигураций npmregistry.npmjs.org** После завершения выпуска, если вы хотите вернуться к предыдущему cnpm, используйте следующую командуnpm config set registry registry.npm.taobao.org
Создайте обращение со ссылкой на только что загруженный пакет
Предположим, что он был успешно опубликован и имя пакета называетсяtoniqian-test-module, В это время вы можете создать пустой каталог, cd в него, запустить npm install toniqian-test-module, и тогда в этом каталоге появится папка с именем node_modules, а в этой папке появится написанный вами ранее пакет.
Затем напишите index.js, код выглядит следующим образом
var test = require('toniqian-test-module');
test.showMsg();
запустить index.js
node index.js
Тогда только что загруженный пакет можно использовать сейчас, Вы успешно создали пакет npm
Как обновить пакеты npm
Когда содержимое вашего пакета изменено, например
exports.showMsg = function () {
console.log("This is my second module");
};
Изменил текст подсказки, то нам нужноnpm version <update_type> update_typeЭто означает номер версии, он будет обновляться автоматическиpackage.json里面的版本号 затем перезапуститеnpm publishобновление будет завершено
ОперацияРеализовать функцию преобразования относительного времени
moment(time){
// 相对时间转换
}
Как удалить пакет npm
npm unpublish kk-a-test --force
Просмотр текущей учетной записи npm, вошедшей в систему
npm whoami
выходное имя пользователя
Коллекция ошибок пакета
1. Нужно увеличить номер версии
#1、发包 npm publish 失败
sh-neverleave:z-tool neverleave$ npm publish
npm ERR! publish Failed PUT 400
npm ERR! code E400
npm ERR! deprecations must be strings : z-tool
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/neverleave/.npm/_logs/2018-11-23T10_52_01_742Z-debug.log
sh-neverleave:z-tool neverleave$ npm publish
#2、发包 npm publish 失败
sh-neverleave:z-tool neverleave$ npm publish
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! You cannot publish over the previously published versions: 1.0.3. : z-tool
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/neverleave/.npm/_logs/2018-11-23T11_24_57_662Z-debug.log
sh-neverleave:z-tool neverleave$
2. Не удалось отправить пакет npm для публикации Решение: Терминальное выполнение: npm publish --access public
Ссылаться на:stackoverflow.com/questions/5…
#1、发包 npm publish 失败
sh-neverleave:npm neverleave$ npm publish
npm ERR! publish Failed PUT 400
npm ERR! code E400
npm ERR! unscoped packages cannot be private : z-tool
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/neverleave/.npm/_logs/2018-11-23T08_44_21_310Z-debug.log
sh-neverleave:npm neverleave$
#解决方案:终端执行: npm publish --access public
sh-neverleave:npm neverleave$ npm publish --access public
+ z-tool@1.0.0
sh-neverleave:npm neverleave$
3. Убедитесь, что учетная запись пользователя, вошедшего в систему, верна.
sh-neverleave:npm neverleave$ npm publish
npm ERR! publish Failed PUT 404
npm ERR! code E404
npm ERR! 404 User not found : z-tool
npm ERR! 404
npm ERR! 404 'z-tool' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/neverleave/.npm/_logs/2018-11-23T07_32_28_518Z-debug.log
4. Вам нужно добавить «~» перед именем пользователя при входе в систему. Вы можете проверить детали.
sh-neverleave:npm neverleave$ npm login
Username: (~neverleave) neverleave
Password: (<default hidden>)
Email: (this IS public) (1063588359@qq.com)
npm ERR! code EAUTHIP
npm ERR! Unable to authenticate, need: Basic
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/neverleave/.npm/_logs/2018-11-23T07_27_50_877Z-debug.log
sh-neverleave:npm neverleave$
5, нет разрешения на удаление пакета (снятие, ограничение по времени, 24 часа) Решение: плюс --force
sh-neverleave:z-tool neverleave$ npm unpublish z-tool
npm ERR! Refusing to delete entire project.
npm ERR! Run with --force to do this.
npm ERR! npm unpublish [<@scope>/]<pkg>[@<version>]
sh-neverleave:z-tool neverleave$
#解决方案(内部有被鄙视的话,😄 I sure hope you know what you are doing.)
sh-neverleave:z-tool neverleave$ npm unpublish z-tool --force
npm WARN using --force I sure hope you know what you are doing.
- z-tool
sh-neverleave:z-tool neverleave$
6. Пакет с таким же названием в npm market можно переопубликовать только через 24 часа.
sh-neverleave:z-tool neverleave$ npm publish
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! z-tool cannot be republished until 24 hours have passed. : z-tool
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/neverleave/.npm/_logs/2018-11-23T11_41_24_086Z-debug.log
sh-neverleave:z-tool neverleave$