独自のnpmモジュールをパブリッシュ
4760 ワード
1.前提&説明
インストール
2.npmアカウントの登録
まず
3.モジュールを書き始める
パブリッシュされたパッケージは、既存の
プロジェクトの作成を開始します:(これを例に、正規検証モジュールを発表しました)
4.プロジェクトディレクトリ構造
まずプロジェクトディレクトリ構造を見てください.一部のファイルは後述します.
5.プロジェクトのいくつかの構成 babel を取り付ける
新規構成
これで
6.srcファイル作成
7.ユニットテスト
配布品質を保証するために、書き込みユニットテストが必要です.ここでは
新規
端末実行
8.独自のnpmモジュールをリリースする初回アップロード: 自分のNPMパッケージを更新する:
9.自己発行モジュールの使用
実行例コード:
インストール
node.js
説明:この文書で説明した命令などはMac
であり、Windows
では若干異なる場合があります.2.npmアカウントの登録
まず
npm
アカウントの登録アドレスが必要です3.モジュールを書き始める
パブリッシュされたパッケージは、既存の
npm
モジュール名と競合しないため、作成したいパッケージの名前が重複しているかどうかを確認することをお勧めします.アドレスを確認し、このページで作成したいnpmモジュール名を検索して、すでに存在するかどうかを確認します.プロジェクトの作成を開始します:(これを例に、正規検証モジュールを発表しました)
mkdir regexpForYou
cd regexpForYou
npm init
// package name npm
// ,
4.プロジェクトディレクトリ構造
まずプロジェクトディレクトリ構造を見てください.一部のファイルは後述します.
├── lib // npm run build
| ├── index.js
├── src //
| ├── index.js
├── test //
| ├── test.js
├── .babelrc
├── package.json
├── README.md
5.プロジェクトのいくつかの構成
src
ディレクトリで書くときはes6
の文法を使うので、Babel
でコンパイルする必要があります.npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
新規構成
.babelrc
、構成.babelrc
{
"presets": ["es2015"]
}
src
ディレクトリのコードをlib
ディレクトリにコンパイルし、package.json
で「main」を「lib/index.js」に変更すると、外部に露出したコードに互換性の問題が発生しません.package.json
ファイルのscripts
を修正"scripts": {
"build": "babel src -d lib"
}
これで
npm run build
を実行すると、ソースファイルがlib
ディレクトリにコンパイルされます.6.srcファイル作成
src
目次の下にreg.js
、index.js
を新設する// reg.js
export const AmountReg = /^-?(\d|([1-9]\d+))(\.?\d{1,2})?$/
export const PIntReg = /^(\d|([1-9]\d+))$/
export const PNIntReg = /^-?(\d|([1-9]\d+))$/
// index.js
import * as REG from './reg'
export function testAmount(str) {
return REG.AmountReg.test(str)
}
export function testPIntReg(str) {
return REG.PIntReg.test(str)
}
export function testPNIntReg(str) {
return REG.PNIntReg.test(str)
}
7.ユニットテスト
配布品質を保証するために、書き込みユニットテストが必要です.ここでは
mocha
とchai
を使用してテストします.npm install mocha chai --save-dev
新規
test
フォルダ、test.js
ファイル// test.js
const chai = require('chai')
const should = chai.should()
const regTest = require('../lib/index')
describe(" ",() => {
it('test -2.33 should equal true',() => {
regTest.testAmount('-2.33').should.equal(true)
})
})
describe(" ",() => {
it('test -2.333 should equal false',() => {
regTest.testAmount('-2.333').should.equal(false)
})
})
describe(" ",() => {
it('test -2 should equal false',() => {
regTest.testPIntReg('-2').should.equal(false)
})
})
describe(" ",() => {
it('test 2 should equal true',() => {
regTest.testPIntReg('2').should.equal(true)
})
})
describe(" ",() => {
it('test -2 should equal true',() => {
regTest.testPNIntReg('-2').should.equal(true)
})
})
describe(" ",() => {
it('test 2 should equal true',() => {
regTest.testPNIntReg('2').should.equal(true)
})
})
describe(" ",() => {
it('test 2.22 should equal false',() => {
regTest.testPNIntReg('2.22').should.equal(false)
})
})
package.json
ファイルのscripts
を修正"scripts": {
"test": "npm run build && mocha -t 5000"
}
端末実行
npm run test
では、実行結果が表示される
✓ test -2.33 should equal true
✓ test -2.333 should equal false
✓ test -2 should equal false
✓ test 2 should equal true
✓ test -2 should equal true
✓ test 2 should equal true
✓ test 2.22 should equal false
7 passing (8ms)
8.独自のnpmモジュールをリリースする
npm login
// 、
// npm :
npm publish
npm version patch
npm publish
// npm version :
// patch: , bug , v1.0.0->v1.0.1
// minor: , , v1.0.0->v1.1.0
// major: , v1.0.0->v2.0.0
9.自己発行モジュールの使用
npm install --save regexp-for-you
const regexp = require('regexp-for-you');
console.log(regexp.testAmount('-2.333'))
実行例コード:
node test.js
、出力false
、予想通り.