1、先创建一个项目,npm init初始化一下,里面可以一路回车(等会直接去编辑package.json)
下面相关package.json文件内容参数介绍,制作npm包和常规开发项目还是点区别的,package.json文件内有些参数是必要的,并且每次发布新包到Npm上的时候,version版本号也是要变动的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
{ "name": "包的名称", "version": "3.2.0", "description": "包的描述信息", "main": "dist/index.js编译后入口文件", "types": "dist/index.d.ts编译后类型推断文件", "engines": { "node": ">=8.9.0" }, "keywords": ["joi", "swagger", "搜索的关键字"], "repository": { "type": "git", "url": "https://github.com/创建地址、用于展示链接到你仓库" }, "author": "作者的名称", "license": "MIT", "peerDependencies": { "joi": ">= 13" 指定当前插件依赖的各种包版本 }, // 指定此插件包,每个的依赖版本,以免被外部影响(一个插件包内不同文件夹创建多个package.json会用到) "peerDependencies": { "@nestjs/common": "^6.0.0", "reflect-metadata": "^0.1.12" }, // 制作自己插件的bin命令,每次创建的时候都要使用npm link编译到全局中,然后才可以使用(如果有发布可不用npm link操作) // 编译后在当前项目的scripts脚本中创建generateApidoc即可执行, "bin": { "generateApidoc": "./src/bin/index.js" }, "scripts": { "apidoc": "generateApidoc", }, } |
2、初始化好后,做准备工作新建目录开发用,并且配置编译是用babel还是ts,我默认用的是ts编译的,所以在根目录中创建了tsconfig.json文件,以及安装好了typescript插件,
制作自己插件一路需要使用任何第三方插件,安装就完事了。
3、配置忽略上传到Npm包中的文件,创建.npmignore文件,里面配置你不想上传到npm包内的,一般是源文件不附带上去,只上传编译好后的文件目录,及根目录下的文件。
PS:用法同.gitignore配置样,过于简单就不细举例了。
4、此时准备工作完毕开始正式开发插件,比如你把你自己封装好的插件放到/src目录下,然后通过编译后到dist目录中去。
需要注意的是/src目录下一定要有一个入口文件,编译后的入口文件也是在dist目录下,所以在package.json中直接指定编译好的文件即可。
如果无从下手开发npm插件的话可以看我开发的一个小插件npm包仓库(可作参考) https://github.com/tec8297729/z-swagger-to-apidoc
5、开发完NPM插件包后,进入发布包阶段,命令行中输入 npm login 登录你的npm帐号(没有就注册一个)
6、登录成功后,输入npm publish 发布你的包。。。如果提示以下报错信息,那么就是你的npm帐号邮箱未验证通过,请先验证通过邮箱后才能发布npm包功能。
1 |
you must verify your email before publishing a new package: https://www.npmjs.com/email-edit : z-swagger-to-apidoc |
7、此时一切顺利的话,你的npm包已经发布线上,你可以npm上查询你的包,如果你想取消发布的话,输入 npm unpublish 取消发包,需要注意的是:此命令只有在你发布包后的24小时内有效
扩展功能:自动化发布npm包
制作插件的时候可以集成自动化CI测试、及自动化发布包功能,这次使用的是travis自动化测试平台(这个有很多教程就不细述了),话不多说实操代码
要根着下面步骤学习,前提一定要了解tarvis哦,可以先提前翻阅资料补一下知识点
1、在项目根目录下创建.travis.yml文件,配置自动化流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
language: node_js node_js: - '12' - '10' - '9' install: - npm install os: - linux stages: - name: deploy # 调用指定deploy命令 jobs: include: - stage: test script: - node --version - npm --version - echo "Testing Started ..." - npm test - echo "Testing Finished." - stage: deploy script: - echo "NPM Deploying Started ..." - npm version - npm run build - echo "NPM Building Finished." deploy: provider: npm email: linyimin520812@gmail.com api_key: '$NPM_TOKEN' # 使用变量读取 skip_cleanup: true # 触发deploy命令条件 on: branch: master # 指定监听分支号 |
2、进入travis官网启动监听的仓库,进入指定仓库右上角点击设置功能,设置脚本中的变量NPM_TOKEN值(一般隐私的值可以单独设置在另外地方,这样脚本对外不会暴露你重要的id或密码之类)
进入设置页面有一处设置变量名的,设置好后就是如下效果
这样每次在发包的时候就会自动发布到Npm上。
发表于2019-10-06 at 15:07 0楼
你好!.
我可以在哪里免费下载XEvil在您的网站?
从你的支持得到的信息。 XEvil确实是解决验证码的最佳方案,但我需要最新版本。
多謝。.