发布项目到NPM

来源:互联网 发布:c语言流程图while 编辑:程序博客网 时间:2024/05/19 05:31

最近,在开发Node项目过程中遇到了需要类jQuery深拷贝对象的问题,去Github找了半天,并没有符合的,于是,自己决定写一个(mixin.js),然后推送到NPM(查看Npm相关内容,请查看<npm模块管理器>),下面是整个流程,在此记录~~~

环境要求

  • 安装Node
  • 安装Npm

创建项目

第一步:在Github创建相关repository,然后进行npm init 初始化package.json。之前曾撰写过使用commander进行模拟npm init操作,请参考:使用Node.js构建命令行工具 
第二步:编写相关代码

注意:对于引入方式进行处理

(function (global, name, factory) {    "use strict";    if (typeof exports === 'object' && typeof module !== 'undefined') {        module.exports = factory();    } else if (typeof define === 'function' && (define.amd || define.cmd)) {        define(factory);    } else {        global[name] = factory.apply(this);    }}(this, "项目名称", function () {    // 逻辑编写}));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

第三步:发布模块 
1. 在npm注册账号:https://www.npmjs.com/signup 
2. 在本地登录自己刚注册的账号 npm login 
3. 发布模块 npm publish

持续集成

目前Github已经整合了持续集成服务travis,我们只需要在项目中添加.travis.yml文件,在下一次push之后,travis就会定时执行npm test来测试你的项目(该项目中,使用mocha进行测试管理),并且会在测试失败的时候通知到你,你也可以把项目当前的状态显示在README.md中,进而很容易知道项目当前状态。

language: node_jsnode_js:  - "4"
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

压缩打包

项目中,使用gulp进行压缩代码

var gulp = require('gulp');var uglify = require('gulp-uglify');var rename = require('gulp-rename');gulp.task('default', function () {    gulp.src('src/*.js')        .pipe(uglify())        .pipe(rename({ extname: '.min.js' }))        .pipe(gulp.dest('dist/'))});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

附:

项目结构

mixin.js├─┬ dist│ └── mixin.min.js├─┬ src│ └── mixin.js├─┬ test│ └── test.js├── .gitignore├── .npmignore├── .travis.yml├── gulpfile.js├── LICENSE├── package.json├── README.md
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

项目面板

项目地址:https://www.npmjs.com/package/mixin.js 
这里写图片描述

package.json关键字段说明

package.json文件必须是一个JSON,而非JavaScript对象。更详细内容,请查看<package.json>

  • name:最重要的字段之一,项目名称(少于214个字节)。没有nameversion不能进行安装;
  • version:最重要的字段之一,项目版本。没有nameversion不能进行安装;修改项目代码的同时需要修改该version字段;
  • description:项目描述,帮助人们通过npm search发现该项目;
  • keywords:关键字,帮助人们通过npm search发现该项目;
  • license:开源声明;

类型说明General Public License,简称GPL运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。BSD可以自由的使用,修改源代码,也可以将修改后的代码作为开源或专有软件再发布Massachusetts Institute of Technology,简称MIT详情参考:https://docs.npmjs.com/files/package.json

原创粉丝点击