一、常用npm命令
-
安装包
npm install 包的完整名称 或者 npm i 包名 //初次安装包时多出的文件 node_modules:用来存放所有已安装到项目中的包 package-lock.json文件:用于记录node_modules目录下的每一包的下载信息 /* { "name": "code", "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { "jquery": "^3.6.1" } }, "node_modules/jquery": { "version": "3.6.1", "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.6.1.tgz", "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==" } }, "dependencies": { "jquery": { "version": "3.6.1", "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.6.1.tgz", "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==" } } } */
-
安装指定版本的包
npm i 包名@版本号 //包的版本号是以“点分十进制”形式进行定义的,总共有三位数字,例如 2.24.0
-
包管理配置文件
npm init -y /* { "dependencies": {//用于记录下载的包(开发并上线所使用的包) "jquery": "^3.6.1" }, "name": "code",//项目名 "version": "1.0.0",//版本号 "main": "1.js",//路口文件 "devDependencies": {},//开发但不上线使用的包 "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "" } */
-
一次性安装所有的包
//根据package.json中的dependencies节点下载所有包 npm install
-
卸载包
npm uninstall 包名
-
将包下载的记录到devDependecies节点
npm install 包名 -D
-
切换npm的下包镜像
npm config set registry=https://registry.npm.taobao.org/ //查看当前的下包镜像 npm config get registry
-
nrm工具的使用
//下载nrm工具 npm i nrm //查看当前可用所有镜像 nrm ls //切换镜像 nrm use taobao
-
包的分类
/* 项目包:安装到node_modules目录中的包 开发依赖包:被记录到devDependencies节点中的包,只在开发时会用到 npm i 包名 -d 核心依赖包:被记录到dependencies节点中的包,在开发期间和项目上线之后都会用到 npm i 包名 */ /* 全局包:全局包会被安装到 C:\Users\用户目录\AppData\Roaming\npm\node_modules 目录下 npm i 包名 -g//下载全局包 npm uninstall 包名 -g//删除全局包 */
-
i5ting_toc工具
//下载i5ting_toc npm i i5ting_toc -g //将md文件转为html文件 i5ting_toc -f 要转换的md文件的路径 -o//-o:在默认浏览器中打开
-
规范的包结构
/* 必须符合如下三个要求:https://yarnpkg.com/zh-Hans/docs/package-json 1.包必须以单独的目录存在 2.包的顶级目录下必须包含package.json这个包管理文件 3.package.json中必须包含name,version,main这三个属性,分别表示包的名字,版本号,包的入口 */
-
开发自己的包
/* 例如:实现如下功能的包 1.格式化日期 2.转义HTML中的特殊字符 3.还原HTML中的特殊字符 */ //1.新建项目名my-tools //2.在my-tools目录下,新建index.js、package.json和README.md文件和src目录 /* index.js文件内容如下: const date = require('./src/dateFormat') const escapt = require('./src/htmlEscapt') module.exports = { ...date, ...escapt } package.json文件如下: { "name": "my-tools", "version": "1.0.0", "description": "提供了格式化时间,HTMLEscape的功能", "main": "index.js", "keywords": [ "feibin","dateFormat","HTMLEscape","检索的关键字" ], "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "feibin", "license": "ISC" } */ //3.在src文件下,创建dateFormat.js文件,写入如下内容 /* 格式化时间的方法 function dateFormat(dateStr){ const date = new Date(dateStr) const YY = date.getFullYear() const MM = padZero(date.getMonth() + 1) const dd = padZero(date.getDate()) const hh = padZero(date.getHours()) const mm = padZero(date.getMinutes()) const ss = padZero(date.getSeconds()) return `${YY}-${MM}-${dd} ${hh}:${mm}:${ss}` } //补零函数 function padZero(n){ return n > 9 ? n : '0' +n } module.exports = { dateFormat } */ /* 4.在src文件下创建htmlEscape.js文件 //转义html function htmlEscape(htmlStr){ return htmlStr.replace(/<|>|"|&/g,(match) =>{ switch(match){ case '<': return '<' case '>': return '>' case '"': return '"' case '&': return '&' } }) } function htmlUnEscape(str){ return str.replace(/<|>|"|&/g,(match) =>{ switch(match){ case '<': return '<' case '>': return '>' case '"': return '"' case '&': return '& ' } }) } module.exports = { htmlEscape, htmlUnEscape } */ /* 5.创建index.js文件,写入如下内容 const date = require('./src/dateFormat') const escapt = require('./src/htmlEscapt') module.exports = { ...date, ...escapt } */ /* 6.编写README.md文件,内容如下: ## 安装 ``` npm install my-tools ``` ## 导入 ```js const mytools = require('my-tools') ``` ## 格式化时间 ```js // 调用 dateFormat 对时间进行格式化 const dtStr = mytools.dateFormat(new Date()) // 结果 2020-04-03 17:20:58 console.log(dtStr) ``` ## 转义 HTML 中的特殊字符 ```js // 带转换的 HTML 字符串 const htmlStr = '<h1 title="abc">这是h1标签<span>123 </span></h1>' // 调用 htmlEscape 方法进行转换 const str = mytools.htmlEscape(htmlStr) // 转换的结果 <h1 title="abc">这是h1标签<span>123&nbsp;</span></h1> console.log(str) ``` ## 还原 HTML 中的特殊字符 ```js // 待还原的 HTML 字符串 const str2 = mytools.htmlUnEscape(str) // 输出的结果 <h1 title="abc">这是h1标签<span>123 </span></h1> console.log(str2) ``` ## 开源协议 ISC */
-
发布包
1.注册npm账户 a 访问 https://www.npmjs.com/ 网站,点击 sign up 按钮,进入注册用户界面 b 填写账号相关的信息:Full Name、Public Email、Username、Password c 点击 Create an Account 按钮,注册账号 d 登录邮箱,点击验证链接,进行账号的验证 2.在控制台登录npm账户 npm 账号注册完成后,可以在终端中执行 npm login 命令,依次输入用户名、密码、邮箱后,即可登录成功。 3.将包发布到npm上 将终端切换到包的根目录之后,运行 npm publish 命令,即可将包发布到 npm 上(注意:包名不能雷同)。 4.删除已发布的包 运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包。