梳理了一下npm发包的过程:
1、基础模块代码
git.daojia-inc.com/eife/dj-inp…
项目介绍:移动端可输入添加的下拉搜索框
2、注册npm 账号
要发布一个npm ,首先要有一个npm账号和密码 ,直接去官网注册就可以了
官网地址:www.npmjs.com/
3、配置package.json
创建一个新的文件夹,直接运行 npm init,下面就是填写的配置项.
{
"name": "dj-input-search",
"version": "1.0.0",
"description": "移动端可输入的下拉搜索框",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {},
"devDependencies": {
"css-loader": "^1.0.1",
"file-loader": "^2.0.0",
"html-webpack-plugin": "^3.2.0",
"scss-loader": "0.0.1",
"style-loader": "^0.23.1",
"vue": "^2.5.17",
"vue-loader": "^15.4.2",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.5.17",
},
"repository": {
"type": "git",
"url": "http://git.daojia-inc.com/eife/dj-input-search.git"
},
"author": "zhuhuanhuan",
"license": "ISC"
}
需要注意的是,在配置name 的时候,去npm搜索一下,你要写的模块名称,如果搜不到,你就可以使用此名称进行发包。
还有版本号,默认是从 v1.0.0 开始的。
npm社区版本号规则采用的是语义化版本2.0.0,主要规则版本格式:
主版本号.次版本号.修订号
版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改,
- 次版本号:当你做了向下兼容的功能性新增,
- 修订号:当你做了向下兼容的问题修正。
- 先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
下面是package.json文件的详细内容。
- description:描述信息,有助于搜索
- main: 入口文件,一般都是 index.js
- scripts:支持的脚本,默认是一个空的 test
- keywords:关键字,有助于在人们使用 npm search 搜索时发现你的项目
- author:作者信息
- license:许可证
- bugs:当前项目的一些错误信息,如果有的话
- repository:指定一个代码存放地址。
下面是包的两种依赖方式:
- dependencies:在生产环境中需要用到的依赖
- devDependencies:在开发、测试环境中用到的依赖
第一种依赖安装方式:
npm install xxx --save
第二种依赖安装方式:
npm install xxx --save-dev
把你的项目可以放入当前文件夹中,记得去npm install 一下项目里面需要用到的包。
目前到这一步,大概就可以发包,但是显的有些粗糙,readme 都没写,别人不知道这个包用来干嘛的。
添加demo用例
是一个可以运行的用例
完善README .md
这个还是挺重要的,你需要这里面讲清楚这个项目是干什么用的,怎么去使用,有完整的api,有具体的使用实例。
发布
首先登录
npm adduser
// 或者
npm login
输入账号:xxx
密码:xxx
邮箱:自己的邮箱
执行发布命令
提示+ dj-input-search@1.0.0 代表发包成功,可以npm 官网去搜索你发布的模块名称。
发布过程的会遇到几个的问题:
1、npm ERR! no_perms Private mode enable, only admin can publish this module:
或者是下面这种报错:
nrm use npm // 切换npm源地址
2、npm ERR! you do not have permission to publish "your module name". Are you logged in as the correct user?
提示没有权限,其实就是你的模块名被占用了,去npm搜索一下模块名称,搜不到的名字就可以使用,并且需要把 package.json的name更改了。
其他操作
撤销发包
npm unpublish dj-input-search@1.0.0
发包的时候,还需要注意的是,如果再次发包,需要更改版本号,否则会报错。
更新版本号
npm version 1.0.1
补充
npm link的使用
在开发模块的阶段,我们可以使用npm link 命令 把本地npm 模块链接对应到项目中去,方便开发与调试。