当前位置: 首页 > news >正文

开发npm包【详细教程】

1. 给 npm 包取个【唯一】的名字!

npm 包命名规范

  • 只能包含小写字母(a-z)、数字(0-9)、连字符(-) 和 下划线(_),不能包含空格、大写字母、标点符号(除连字符和下划线外)或特殊字符(如 !、@、# 等)
  • 长度不超过 214 个字符
  • 建议以字母开头
  • 连字符(-)常用于分隔单词(如 react-dom),下划线(_)使用较少,避免连续使用连字符或下划线(如 my–package 不推荐)
  • 名称应简洁易记,体现包的具体功能
  • 避免禁用的名称,如 fs、npm、package、install、publish 等

范围包

包名格式如下的为范围包,适合个人或企业发布的系列包,如 @vue/cli 等

@scope/package-name
  • scope 是npm 用户名或组织名

在发布时,默认为私有范围包(仅自己或授权用户可见,且需要付费),可指定为公共范围包(所有人可见可安装,免费)

npm publish --access public

检验包名是否唯一

npm search 包名

或在 npm官网 中搜索试试

在这里插入图片描述

2. 创建项目,完成开发

使用 vite 的库模式开发

以包名 frontend-monitor-sdk 为例

npm create vite@latest frontend-monitor-sdk -- --template vanilla-library

使用 npm 开发

以包名 mypack-test 为例

  1. 新建文件夹 mypack-test
  2. 用vscode 打开文件夹 mypack-test
  3. 终端执行 npm init 生成 package.json 文件,按提示输入相关信息或一路回车,最后输入 y 回车即可。
    在这里插入图片描述
    蓝框内的部分为包的信息,可根据需要自行输入(或等生成package.json后再修改)
  • package name 包名,默认为项目名称
  • version 包的版本号,默认为 1.0.0
  • description 包的描述信息
  • entry point 包的入口文件(包内的所有内容,要在此文件对外导出),默认为 index.js
  • test command 测试命令,默认为 “echo “Error: no test specified” && exit 1”
  • git repository 包的远程 git 仓库
  • keywords 关键字
  • author 包的作者
  • license 开源文件协议,默认为 ISC
  1. 新建文件index.js,内容为
    要点:定义的函数/变量一定要对外导出!

    /*函数功能——求和参数——两个数字
    */
    function sum(a, b) {return a + b;
    }module.exports = {sum: sum,
    };
  2. 新建文件README.md,内容为包相关的信息

  3. 新建文件 .npmignore,内容为发布时不需要打包的文件,如

    node_modules
    *.log
    
http://www.dtcms.com/a/327264.html

相关文章:

  • AWS KMS VS AWS Cloud HSM VS AWS Secret Manager?
  • 开源!!! htop移植到OpenHarmony
  • 自动驾驶决策算法 —— 有限状态机 FSM
  • AI项目提示-提示词-属于-mcp-cli等
  • css初学者第五天
  • 【CSS 变量】让你的 CSS “活”起来:深入理解 CSS 自定义属性与主题切换
  • 现代 CSS工具
  • web前端第二次作业
  • 【CSS 视觉】无需JS,纯 CSS 实现酷炫视觉效果(clip-path, filter, backdrop-filter)
  • 微前端面试考点与答案
  • 纯CSS+JS制作抽奖大转盘
  • 【CSS3】录音中。。。
  • aspose word for java 使用书签进行内容填充和更新
  • AppStorageV2:鸿蒙全局状态管理详解-ArkUI本地存储
  • django 如何读取项目根目录下的文件内容
  • Python常用的5种中文分词工具
  • 力扣 hot100 Day71
  • Claude Code,Gemini CLI,Trae-agent, Qwen Code 使用对比及感受
  • 【数据分享】2020-2022年我国乡镇的逐日最高气温数据(Shp/Excel格式)
  • ABAC 权限策略扩展
  • 在达梦数据库中使用group by 命令报错问题
  • MCU中的液晶显示屏LCD(Liquid Crystal Display)控制器
  • Python 正则表达式 re.findall()
  • special topic 11 (1)
  • 【Linux系统】详解Ext2,文件系统
  • 打印流水号条形码
  • 标注工具组件功能文档
  • 如何将新建的Anaconda虚拟环境导入Juputer内核中?
  • Spring Boot项目通过RestTemplate调用三方接口详细教程
  • 系统架构设计师备考之架构设计实践知识