npm基本使用

一、常用npm命令

  1. 安装包

    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=="
        }
      }
    }
    */
    
  2. 安装指定版本的包

    npm i 包名@版本号
    //包的版本号是以“点分十进制”形式进行定义的,总共有三位数字,例如 2.24.0
    
  3. 包管理配置文件

    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": ""
    }
    */
    
  4. 一次性安装所有的包

    //根据package.json中的dependencies节点下载所有包
    npm install
    
  5. 卸载包

    npm uninstall 包名
    
  6. 将包下载的记录到devDependecies节点

    npm install 包名 -D
    
  7. 切换npm的下包镜像

    npm config set registry=https://registry.npm.taobao.org/
    //查看当前的下包镜像
    npm config get registry
    
  8. nrm工具的使用

    //下载nrm工具
    npm i nrm
    //查看当前可用所有镜像
    nrm ls
    //切换镜像
    nrm use taobao
    
  9. 包的分类

    /*
    项目包:安装到node_modules目录中的包
    	开发依赖包:被记录到devDependencies节点中的包,只在开发时会用到
    	npm i 包名 -d
    	核心依赖包:被记录到dependencies节点中的包,在开发期间和项目上线之后都会用到
    	npm i 包名
    */
    /*
    全局包:全局包会被安装到 C:\Users\用户目录\AppData\Roaming\npm\node_modules 目录下
    npm i 包名 -g//下载全局包
    npm uninstall 包名 -g//删除全局包
    */
    
  10. i5ting_toc工具

    //下载i5ting_toc
    npm i i5ting_toc -g
    //将md文件转为html文件
    i5ting_toc -f 要转换的md文件的路径 -o//-o:在默认浏览器中打开
    
  11. 规范的包结构

    /*
    必须符合如下三个要求:https://yarnpkg.com/zh-Hans/docs/package-json
    	1.包必须以单独的目录存在
    	2.包的顶级目录下必须包含package.json这个包管理文件
    	3.package.json中必须包含name,version,main这三个属性,分别表示包的名字,版本号,包的入口
    */
    
  12. 开发自己的包

    /*
    	例如:实现如下功能的包
    			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 '&lt;'
                    case '>':
                        return '&gt;'
                    case '"':
                        return '&quot;'
                    case '&':
                        return '&amp;'
                }
            })
        }
        function htmlUnEscape(str){
            return str.replace(/&lt;|&gt;|&quot;|&amp;/g,(match) =>{
                switch(match){
                    case '&lt;':
                        return '<'
                    case '&gt;':
                        return '>'
                    case '&quot;':
                        return '"'
                    case '&amp;':
                        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&nbsp;</span></h1>'
            // 调用 htmlEscape 方法进行转换
            const str = mytools.htmlEscape(htmlStr)
            // 转换的结果 &lt;h1 title=&quot;abc&quot;&gt;这是h1标签&lt;span&gt;123&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;
            console.log(str)
            ```
    
            ## 还原 HTML 中的特殊字符
    
            ```js
            // 待还原的 HTML 字符串
            const str2 = mytools.htmlUnEscape(str)
            // 输出的结果 <h1 title="abc">这是h1标签<span>123&nbsp;</span></h1>
            console.log(str2)
            ```
    
            ## 开源协议
    
            ISC
    */
    
    
  13. 发布包

    1.注册npm账户
    	a 访问 https://www.npmjs.com/ 网站,点击 sign up 按钮,进入注册用户界面
    	b 填写账号相关的信息:Full NamePublic EmailUsernamePassword
    	c 点击 Create an Account 按钮,注册账号
    	d 登录邮箱,点击验证链接,进行账号的验证
    2.在控制台登录npm账户
    	npm 账号注册完成后,可以在终端中执行 npm login 命令,依次输入用户名、密码、邮箱后,即可登录成功。
    3.将包发布到npm上
    	将终端切换到包的根目录之后,运行 npm publish 命令,即可将包发布到 npm 上(注意:包名不能雷同)。
    4.删除已发布的包
    	运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包。
    
posted @   秋风里的蜜  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
  1. 1 在你的身边 盛哲
  2. 2 世间美好与你环环相扣 柏松
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
在你的身边 - 盛哲
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.
点击右上角即可分享
微信分享提示