• 公布项目到NPM


    修己安人,内圣外王

    近期,在开发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. 在npm注冊账号:https://www.npmjs.com/signup
    2. 在本地登录自己刚注冊的账号 npm login
    3. 公布模块 npm publish

    持续集成

    眼下Github已经整合了持续集成服务travis,我们仅仅须要在项目中加入.travis.yml文件,在下一次push之后。travis就会定时执行npm test来測试你的项目(该项目中,使用mocha进行測试管理),而且会在測试失败的时候通知到你,你也能够把项目当前的状态显示在README.md中,进而非常easy知道项目当前状态。

    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对象。

    更具体内容。请查看<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

  • 相关阅读:
    MySQL_解决ERROR 2006 (HY000) at line XX MySQL server has gone away问题
    mysql全量备份脚本
    mysql增量备份脚本
    使用u32过滤器设置基于mac地址的下载限制
    Quantum & r2q
    关于limit hashlimit资料整理
    u32 mac以及arp匹配
    Iptables 规则 一些简单实例和详细介绍
    Optimizing shaper — hashing filters (HTB)
    使用ingress qdisc和ifb进行qos
  • 原文地址:https://www.cnblogs.com/llguanli/p/8449439.html
Copyright © 2020-2023  润新知