1. 程式人生 > >公布項目到NPM

公布項目到NPM

size script param 壓縮 構建 決定 gitignore pos login

修己安人,內聖外王

近期,在開發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

公布項目到NPM