如何发布一个npm包

1. 准备工作

  1. 安装node

    https://www.runoob.com/nodejs/nodejs-install-setup.html

  2. 去npm官网注册一个账号

    官网地址:https://www.npmjs.com/

2. 本地创建一个项目包

  1. 创建一个文件夹,自定义名称,此处设为 cm-first-npm-demo

  2. 命令行进入文件夹下,输入 npm init -y 快速初始化项目,或输入npm init 并依次输入以下信息

    字段名 字段含义
    package name 包名
    version: (1.0.0) 包的版本,默认是1.0.0
    description 包的描述信息
    entry point 入口文件,默认是 index.js
    test command 测试命令,可直接回车忽略
    git repository git仓库地址,可直接回车忽略
    keywords 索引关键字,便于别人搜索到你的包
    author 作者
    license 许可信息,直接回车

    填完之后,会有以下提示信息

    About to write to xxx/package.json:
    
    {
      "name": "xxx",
      "version": "1.0.0",
      "description": "一个npm测试包",
      "main": "index.js",
      "scripts": {
        "test": ""
      },
      "author": "",
      "license": ""
    }
    
    
    Is this OK? (yes) 
    

    直接回车,我们会看到文件夹下有个 package.json 文件,如果你想修改包的信息,可直接在此文件中修改保存。

  3. 创建一个 index.js 文件,写入一个加法函数作为测试函数,代码如下:

    module.exports.add = function (a, b) {
     return a + b
    }
    

3. 发布包

  1. 以管理员身份运行命令行

  2. 修改npm仓库源,输入

    npm config set registry https://registry.npmjs.org/
    

    注:包发布完成后切回淘宝源

    npm config set registry https://registry.npmmirror.com/
    
  3. 进入 cm-first-npm-demo 文件夹下,输入

    npm login
    

    填写用户名、密码、邮箱后完成登录

  4. 发布包

    npm publish
    
  5. 登录npm官网查看包是否发布成功

    image-20220305170602969

4. 测试包

  1. 创建一个文件夹,自定义名称,此处设为 npm-test,作为引入发布包的测试项目

  2. 命令行进入文件夹下,快速初始化项目

    npm init -y
    
  3. 安装我们所发布包

    npm i cm-first-npm-demo -S
    
  4. 创建 index.js 文件,引入发布包,代码如下

    const npmDemo = require('cm-first-npm-demo')
    
    console.log(npmDemo.add(33, 44))
    
  5. 修改 package.json 文件,在script中添加 "start": "node index.js",如

    "scripts": {
      "start": "node index.js"
    }
    
  6. 输入 npm start,输出 77,包引入成功 image-20220305160955549

5. 可能出现的问题

  1. 登录时:image-20220305150907872

    解决方式:切换到管理员

    解决方式:输入邮箱接收到的一次性验证码。

  2. 安装包时

    image-20220305152439061

    解决方式:

    (1)等个十几分钟,登录https://npmmirror.com/,查看自己的包是否已被同步。

    image-20220305162726883

    (2)如果已同步,修改npm仓库源,再次安装

    npm config set registry https://registry.npmmirror.com/
    npm i cm-first-npm-demo -S
    

6. 有关包的导入

在上面的测试包中,我们使用 module.exports 进行导出,require 进行导入,那么使用 module.exports exports 进行导出,能否使用 import 进行导入呢?

因为node使用的是CommonJs规范,不支持直接在js中使用 import,故我们在测试项目 npm-test 下新建文件 index.mjs,并写入以下代码

import npmDemo from 'cm-first-npm-demo'

console.log(npmDemo.add(33, 44))

命令行进入文件夹下,输入

node index.mjs

输出如下

image-20220305175717625

所以,对于发布的包,如果我们使用 module.exports exports 进行导出,既能使用 require,也能使用 import 进行导入。

posted @   Programing_Monkey  阅读(111)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示