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

烟台网站建设-中国互联网络seo培训

烟台网站建设-中国互联,网络seo培训,.东莞网站建设,公司外包如果你负责前端的基础能力建设,发布各种功能/插件包犹如家常便饭,所以熟悉对 npm 包的发布与管理是非常有必要的,故此有了本篇总结文章。本篇文章一方面总结,一方面向社区贡献开箱即用的 npm 开发、编译、发布、调试模板&#xff…

如果你负责前端的基础能力建设,发布各种功能/插件包犹如家常便饭,所以熟悉对 npm 包的发布与管理是非常有必要的,故此有了本篇总结文章。本篇文章一方面总结,一方面向社区贡献开箱即用的 npm 开发、编译、发布、调试模板,希望帮助到有需要的同学。

辛苦整理良久,还望手动点赞鼓励~
npm sdk 模板仓库为:https://github.com/fengshi123/npm-sdk
博客 github地址为:https://github.com/fengshi123/blog ,汇总了作者的所有博客,欢迎关注及 star ~

一、初始化 npm 包

1.1、初始化 npm 项目

根据以下命令能初始化一个 npm 包项目,命令交互过程中会让你填入 项目名称、版本、作者等信息,可以直接回车跳过(使用默认设置)

npm init --save

1.2、包权限管理

很多时候,一个项目包往往不只是你一个人在管理的,这时需要给其他一起维护的同学开通发布的权限,相关使用命令如下:

# 查看模块 owner, 其中 demo 为模块名称
$ npm owner ls demo# 添加一个发布者, 其中 xxx 为要添加同学的 npm 账号
$ npm owner add xxx demo# 删除一个发布者
$ npm owner rm xxx demo

1.3、发布版本

1.3.1、发布稳定版本

更新版本号共有以下选项(major | minor | patch | premajor | preminor | prepatch | prerelease) ,注意项目的git status 必须是clear,才能使用这些命令。

# major 主版本号,并且不向下兼容  1.0.0 -> 2.0.0
$ npm version major# minor 次版本号,有新功能且向下兼容  1.0.0 -> 1.1.0
$ npm version minor# patch 修订号,修复一些问题、优化等  1.0.0 -> 1.0.1
$ npm version patch# premajor 预备主版本  1.0.0 -> 2.0.0-0
$ npm version premajor# preminor 预备次版本  1.0.0 -> 1.1.0-0
$ npm version major# prepatch 预备修订号版本  1.0.0 -> 1.0.1-0
$ npm version major# prerelease 预发布版本  1.0.0 -> 1.0.0-0
$ npm version major

版本号更新后,我们就可以进行版本的发布

$ npm publish

1.3.2、预发布版本

很多时候一些新改动,并不能直接发布到稳定版本上(稳定版本的意思就是使用 npm install demo 即可下载的最新版本),这时可以发布一个 “预发布版本“,不会影响到稳定版本。

# 发布一个 prelease 版本,tag=beta
$ npm version prerelease
$ npm publish --tag beta

比如原来的版本号是 1.0.1,那么以上发布后的版本是 1.0.1-0,用户可以通过 npm install demo@beta  或者 npm install demo@1.0.1-0  来安装,用户通过 npm install demo 安装的还是 1.0.1 版本。

1.3.3、将 beta 版本设置为稳定版本

# 首先可以查看当前所有的最新版本,包括 prerelease 与稳定版本
$ npm dist-tag ls# 设置 1.0.1-1 版本为稳定版本
$ npm dist-tag add demo@1.0.1-1 latest

这时候,latest 稳定版本已经是 1.0.1-1 了,用户可以直接通过 npm install demo 即可安装该版本。

1.3.4、将 beta 版本移除

# 将 beta 版本移除
$ npm dist-tag rm demo beta

1.3.5、将 tag 推送到 Git 远程仓库中

# 当我们发布完对应的版本,可以通过以下命令将版本号推送到远程仓库, 其中 xxx 为对应分支
$ git push origin xxx --tags

1.4、查看版本信息

可以通过 npm info 来查看模块的详细信息。

$ npm info

二、使用 typescript

2.1、安装 typescript 作为开发阶段的依赖项

$ npm i typescript -D

2.2、增加配置文件 tsconfig.json

在根目录新建 tsconfig.json,配置项具体的意义可以参考 ts 官方文档

{"version": "1.8.0","compilerOptions": {"outDir": "build/compiled","lib": [ "es6" ],"target": "es5","module": "commonjs","moduleResolution": "node","emitDecoratorMetadata": true,"experimentalDecorators": true,"sourceMap": true,"noImplicitAny": true,"declaration": true},"exclude": [ "build", "node_modules" ]
}

2.3、安装 @types/node

安装 @types/node 让 node 的核心包具备类型提示

$ npm i @types/node -D

2.4、新建入口文件

在根目录新建 src 目录,用于存放所有的 TypeScript 源文件,然后在 src 下新建 index.ts 作为入口文件

// src/index.tsconsole.log('hello npm-sdk!');

2.5、安装 ts-node-dev

在开发阶段为了能直接执行并且监听 ts 文件的变化,安装 ts-node-dev

$ npm i ts-node-dev -D

在 package.json 中定义一个启动脚本

"scripts": {"start": "ts-node-dev --respawn --transpile-only src/index.ts"
}

这样我们就可以实时进行编译,如下所示
image.png

三、使用 eslint 校验

3.1、安装 eslint

$ npm i eslint -D

3.2、eslint 初始化

$ ./node_modules/.bin/eslint --init

根据交互命令提示对应生成配置文件如下所示,可以根据团队的代码风格进行对应的配置 .eslintrc.js

module.exports = {env: {browser: true,es2021: true},extends: ['standard'],parser: '@typescript-eslint/parser',parserOptions: {ecmaVersion: 13,sourceType: 'module'},plugins: ['@typescript-eslint'],rules: {}
}

3.3、添加忽略文件 .eslintignore

node_modules/

3.4、script 命令配置

可以通过在 package.json 中配置对应的校验命令和修复命令,如下所示

  "scripts": {"lint": "eslint --ext .ts .","lint:fix":"eslint --fix --ext .ts ."},

3.5、提交校验

利用 commitlint 和 husky 工具进行代码提交时拦截验证,安装如下

$ npm i @commitlint/cli @commitlint/config-conventional husky lint-staged --D

在 package.json 中进行对应的配置,当 commit 代码时,如果代码中存在 eslint 错误,那么就会进行报错提示

  "husky":{"hooks":{"pre-commit":"lint-staged","commit-msg":"commitlint -e $HUSKY_GIT_PARAMS"},"lint-staged":{".ts":["eslint --fix"]},"commitlint":{"extends":["@commitlint/config-conventional"]}},

四、编译

我们可以增加对应的 typescript 编译命令,如下所示

"scripts": {"build:cjs": "tsc --outDir lib","build:es": "tsc -m esNext --outDir esm","build": "rd /s /q lib esm && npm run build:cjs && npm run build:es",
},

配置对应的入口地址,其中 module 和 main 的区别是,module 主要在 tree shaking 时会用到。

  "main": "lib/index.js","module": "esm/index.js",

五、本地调试

可以通过 npm link 在正式项目中进行调试,在我们的包目录中安装完发布的线上包后,可以执行以下命令将当前项目 node_modules 底下安装的对应包关联到本地全局 npm 目录的 node_modules 目录下,命令如下

$ npm link npm-sdk@1.0.1-0

执行命令如下所示
image.png
然后在对应的 npm sdk 目录下进行关联

$ npm link// 关联成功后如下所示
D:\nvm\npm\node_modules\npm-sdk -> F:\all_project\npm-sdk

到这里,通过以上两个步骤的关联,将项目中使用到的 sdk 包,关联到该 sdk 包对应的开发目录,我们就可以在本地对 sdk 包进行调试。

六、总结

本文从 npm 各种常用命令、到 sdk 中使用 typescript、以及使用 eslint 强校验、再到编译/本地调试,从零到一演示如何搭建发布一个 NPM 包,NPM SDK 模板仓库为:https://github.com/fengshi123/npm-sdk,有需要的同学可以直接 clone 进行使用。
博客 github地址为:https://github.com/fengshi123/blog ,汇总了作者的所有博客,欢迎关注及 star ~

http://www.qdjiajiao.com/news/6306.html

相关文章:

  • 电脑公司网站设计移动建站模板
  • 广州国外建站模板正规接单赚佣金的app
  • 地图标注申请入口免费短视频seo排名加盟
  • 网站开发的社会背景bilibili官网网页入口
  • 帮他人做视频网站违法吗怎么开通网站平台
  • 漳州公司做网站搜索引擎的关键词优化
  • 大连 响应式网站希爱力
  • 2002年做网站多少钱抖音优化排名
  • 网站建设公司新员工培训ppt模板舆情监测系统
  • 网站地址怎么做超链接百度人工客服在哪里找
  • 厦门微网站开发网站建设报价单模板
  • asp网站后台管理系统源码网页设计用什么软件
  • 登录域名管理网站友情链接
  • 乐清建设网站公司b2b网站大全
  • 帝国cms网站公告怎么做上海互联网公司排名
  • wordpress自定义代码在哪里seo快速排名优化公司
  • 个人网站开发教程独立站seo
  • 网站开发教程 布局产品推广方法
  • 合肥网络公司 网站建设网站设计公司哪家专业
  • 深圳东莞的网站建设公司网络营销案例分析论文
  • 张家口网站建设vewan高佣金app软件推广平台
  • 在哪可以做网站品牌广告语经典100条
  • 潮州市建设局官方网站网站建设公司业务
  • 广州做网站制作公司百度公司排名多少
  • 无锡网站建设动态汕头seo优化
  • 天下商机创业网郑州网站建设优化
  • 政府网站 目的seo的优缺点
  • 商业网站备案流程免费推广网
  • 网站服务器怎么做百度知道官网
  • 网站店铺分布图怎么做谷歌广告推广网站