如何发布一个npm包

本文详细介绍了如何发布和测试一个npm包,包括准备工作、本地创建项目、发布包、测试包的过程,以及可能遇到的问题和解决方案。内容涵盖npm账号注册、初始化项目、发布和导入包的步骤,同时探讨了不同导入方式在Node.js中的适用性。

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 repositorygit仓库地址,可直接回车忽略
    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.exportsexports 进行导出,能否使用 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.exportsexports 进行导出,既能使用 require,也能使用 import 进行导入。

在使用 Vue.js 创建并发布一个 NPM 时,可以通过以下步骤实现。该流程括使用 Vue CLI 初始化项目、构建可发布的模块、配置打工具以及将发布NPM 平台。 ### 3.1 创建 Vue 项目 首先,使用 Vue CLI 创建一个新的 Vue 项目。确保已经安装了 Node.jsnpm,然后运行以下命令: ```bash vue create my-vue-package ``` 进入项目目录并选择合适的配置,或者使用默认配置快速创建项目。 ### 3.2 配置为可发布NPM 为了将 Vue 项目打为适用于 NPM 的模块,需要对项目进行适当的配置。可以使用 `rollup` 或 `webpack` 进行打,但 Vue CLI 默认支持构建库(library)模式。运行以下命令将组件打为通用模块: ```bash vue build --target lib --name myVueComponent ./src/main.js ``` 其中 `--target lib` 表示构建一个库,`--name` 指定库的名称,`./src/main.js` 是入口文件。构建完成后,会在 `dist/` 目录下生成适用于不同环境的构建文件,例如 `myVueComponent.umd.js` 和 `myVueComponent.common.js` [^2]。 ### 3.3 修改 package.json 以支持发布 构建完成后,需要在 `package.json` 中添加必要的字段,以确保模块能够被正确识别和使用。以下是一个典型的配置示例: ```json { "name": "my-vue-package", "version": "1.0.0", "description": "A Vue.js component library", "main": "dist/myVueComponent.common.js", "module": "dist/myVueComponent.esm.js", "files": ["dist"], "keywords": ["vue", "component", "library"], "author": "Your Name", "license": "MIT", "peerDependencies": { "vue": "^2.6.2" } } ``` ### 3.4 发布NPM发布之前,需要确保已经注册了 NPM 账号。然后在项目根目录下运行以下命令进行登录和发布: ```bash npm login npm publish ``` 首次发布时,确保版本号为 `1.0.0`,之后每次更新后可以通过 `npm version` 命令递增版本号 [^2]。 ### 3.5 使用发布 其他开发者可以通过以下命令安装并使用你的 Vue : ```bash npm install my-vue-package ``` 在 Vue 项目中引入并注册组件: ```javascript import MyVueComponent from 'my-vue-package'; export default { components: { MyVueComponent } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值