码迷,mamicode.com
首页 > 其他好文 > 详细

发布项目到NPM

时间:2017-02-17 17:22:00      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:push   params   地址   类型   readme.md   开发   模块   type   逻辑   

修己安人,内圣外王

最近,在开发Node项目过程中遇到了需要类jQuery深拷贝对象的问题,去Github找了半天,并没有符合的,于是,自己决定写一个(mixin.js),然后推送到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. 在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_js
node_js:
  - "4"

压缩打包

项目中,使用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/‘))
});

附:

项目结构

mixin.js
├─┬ dist
│ └── mixin.min.js
├─┬ src
│ └── mixin.js
├─┬ test
│ └── test.js
├── .gitignore
├── .npmignore
├── .travis.yml
├── gulpfile.js
├── LICENSE
├── package.json
├── README.md

项目面板

项目地址:https://www.npmjs.com/package/mixin.js
技术分享

package.json关键字段说明

package.json文件必须是一个JSON,而非JavaScript对象。

  • 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

发布项目到NPM

标签:push   params   地址   类型   readme.md   开发   模块   type   逻辑   

原文地址:http://blog.csdn.net/ligang2585116/article/details/55505841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!