开发并发布一个属于自己的包(npm)

一、CommonJS规范导入require

创建一个npm包涉及几个步骤,包括设置你的项目结构、编写代码、编写文档、测试你的代码,以及发布到npm仓库。以下是一个基本的指南,帮助你从头开始创建一个npm包。

步骤 1: 初始化npm项目

  1. 创建项目文件夹:首先,你需要一个文件夹来存放你的项目。

    javascript 复制代码
    mkdir muzidigbig-utils-npm
    cd muzidigbig-utils-npm
  2. 初始化npm项目:在项目文件夹中,运行以下命令来初始化一个新的npm项目。

    javascript 复制代码
    npm init -y

    这会创建一个package.json文件,包含一些默认设置。

步骤 2: 编写代码

  1. 创建文件 :根据你的包需要,创建必要的文件和目录结构。例如,如果你打算创建一个简单的工具函数库,你可以创建一个index.js文件。

    javascript 复制代码
    // index.js
    function sayHello(name) {
      return `Hello, ${name}!`;
    }
     
    module.exports = { sayHello };

步骤 3: 编写文档

  1. 更新package.json :在package.json文件中,你可以添加更详细的描述、关键字、作者信息等。

    javascript 复制代码
    {
      "name": "muzidigbig-utils-npm",
      "version": "1.0.0",
      "description": "A simple npm package example.",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": ["muzidigbig", "utils", "npm"],
      "author": "muzidigbig",
      "license": "ISC"
    }

name: 包名称,

version: 版本号,

description: 包描述,

main: 入口文件,

keywords:数组(搜索关键字),

license:开源协议

步骤 4: 测试你的代码

  1. 添加测试脚本:你可以使用Jest、Mocha等测试框架来测试你的代码。首先,安装Jest:

    javascript 复制代码
    npm install --save-dev jest
  2. 创建测试文件:例如,创建一个 test/my-package.test.js 文件:

    javascript 复制代码
    const { sayHello } = require('../index');
    test('says hello', () => {
      expect(sayHello('World')).toBe('Hello, World!');
    });
  3. 更新package.json的scripts:添加一个测试脚

    javascript 复制代码
    "scripts": {
      "test": "jest"
    }
  4. 运行测试:

    javascript 复制代码
    npm test

步骤 5: 发布到npm仓库

  1. 登录到npm:如果你还没有登录,运行以下命令:

    javascript 复制代码
    npm login


    首先确保你本地的镜像为 npm 镜像

    javascript 复制代码
    查看镜像
    npm config get registry
    
    修改为 npm镜像
    npm config set registry https://registry.npmjs.org/
    
    修改为 npm镜像(全局)
    sudo npm config set -g registry https://registry.npmjs.org/
  2. 发布包 :确保你的版本号在package.json中是唯一的(遵循语义版本控制),然后运行:

    javascript 复制代码
    npm publish

    每次 npm publish 都需要修改 package.json version版本号保证其唯一。

  3. 验证发布 :登录到npm网站,查看你的包是否已经发布。

    通过以上步骤,你可以成功创建一个并发布一个npm包。记得在开发过程中不断更新文档和添加更多功能,以使你的包更加完善和有用。

删除 npm包

执行命令 npm unpublish 包名 --force,即可从 npm 删除已发布的包。

注意:

① npm unpublish 命令只能删除 72 小时以内发布的包 。

② npm unpublish 删除的包,在 24 小时内不允许重复发布。

Usage 用法

1.项目中安装依赖:

javascript 复制代码
npm install muzidigbig-utils-npm

2.引入包

javascript 复制代码
// const { sayHello } = require('muzidigbig-utils-npm');
import { sayHello } from 'muzidigbig-utils-npm'; // ES6
console.log(sayHello('World')); // Outputs: Hello, World!

二、升级为ES6模块导入(import/export)

Node.js > v13.2.0

步骤 1: 设置type为module

在项目的package.json中添加"type": "module",这样Node.js会将所有的.js文件都当成ES6模块来处理‌

步骤 2: 代码转译‌

使用如Babel这样的转译工具将代码转译为兼容老版本Node.js的格式‌

javascript 复制代码
npm i @babel/core @babel/preset-env

配置 Babel

通常使用 .babelrc 文件或 babel.config.cjs 文件来配置 Babel

javascript 复制代码
module.exports = {
    presets: ['@babel/preset-env'],
}
相关推荐
LRL_2 天前
跨平台 Node 模块安装指南:如何利用 pnpm/npm 配置`supportedArchitectures` 锁定平台依赖
前端·npm·node.js
guslegend3 天前
脚手架原理与本地调试:从 bin 软链接到 npm link
前端·npm·node.js·脚手架·前端工程化
孟陬5 天前
#教程 dw, dm, dy, d18m 是何意?万物可 Badge | 定制漂亮精致小徽章,打造眼前一亮 README
npm·github
hasty9 天前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
玖石书10 天前
HiSH 通过 apk 安装 Node.js、npm 与 pnpm
npm·node.js·鸿蒙·hish
FACELESS VOID10 天前
wsl下使用npm,错误识别到了windows下的npm
linux·windows·npm
搬砖的小码农_Sky12 天前
AI Agent:Windows上Node.js安装后 npm -v报错
前端·npm·node.js·人机交互
梅孔立14 天前
Codex 完整教程(Node.js安装 + npm安装Codex + DeepSeek配置 + 快捷键 + 设置)
前端·npm·node.js
AlfredZhao21 天前
npm 源切换:一条命令搞定
npm
@tangguo12322 天前
npm 和 yarn 配置说明
前端·javascript·npm·node.js·yarn