LoginSignup
4
4

More than 5 years have passed since last update.

新卒でも3週間でできるnpmモジュール

Last updated at Posted at 2018-03-12

npmモジュールを作成したら意外とダウンロードの伸びが良かったので、調子に乗って、参考になったサイトや詳細をまとめて投稿いたします。

まずはこれ

3分でできるnpmモジュール
3時間でできるnpmモジュール
- npmアカウントの作成
- npmモジュールの御膳たて(各ファイルの準備)
- mochaを用いたテスト

1週間目:環境構築

mochaを用いたテスト

3時間でできるnpmモジュールで紹介されていますが、もう少し噛み砕きます。

npmモジュールとして公開する前に、動作確認するためのモジュールです。

導入は、下記コマンドを打ったのち、

npm i mocha

package.jsonで下記のように記述し、npm run testを打てば動作します。

{
  "scripts": {
    "test": "mocha -R spec"
  }
}

他に設定は不要だが、testディレクトリ配下にmain.jsを作成し、このjsに処理を書いていく必要がある。

test
|_main.js

main.jsでの動作確認ができたところで、

cliのモジュールならルートディレクトリ直下(任意)のindex.js、

gruntのプラグインならtasksディレクトリ配下のsample.jsに処理を書き写してアップすることになる。

cliならbinの設定,gruntならkeywodsの設定が必要。

my-module
  |--tasks
  |   |_sample.js <-grunt
  |
  |--test
  |  |_main.js <-mochaによるテスト
  |
  |--index.js  <-cli
  |--package.json
〜〜〜〜〜〜〜
〜〜〜〜〜〜〜

2週間目:実装

とりあえず、main.jsに記載していく。

Node.jsのリファレンスとしては、このサイトにかなりお世話になっていく。一応、日本語リファレンス もあるがオススメしない・・・

何を作るかによるが、filesystem, path, streamあたりを使用したモジュールが最初は作成しやすいのではないでしょうか。

Node.jsは、非同期での処理を繋げていくことで軽量なモジュールを作成できることが特徴らしいです。

3週間目:公開

1.grunt pluginとして公開する場合、package.jsonのkeywodsにgruntpluginと追加しましょう。
また、対象ディレクトリなどユーザーに任意に推定してもらうところは、下記のようにgrunt.initConfigにて登録し、grunt.config()で取得します。
※Gruntfile.jsは、あくまでユーザが任意で設定するものなので、公開するだけなら作成しなくて良い。sample.js内にgrunt.initConfigを記載する必要もない。

Gruntfile.js
module.exports = function(grunt) {
  grunt.initConfig({
    search: {
      dir: 'dist'
    }
  });
  // プラグインのロード
  grunt.loadNpmTasks('class-search');

  //タスクの登録
  grunt.registerTask('default', ['class-search']);
};

sample.js
module.exports = function (grunt) {

  grunt.registerTask('class-search', function () {
    const fs = require('fs');
    const path = require('path');
    const dirPath = grunt.config('search').dir;
   }
}

2.CIツールの一つであるTravis CIを使用するなら、3時間でできるnpmモジュールが参考になりますが、1点注意事項があります。

travis.yml
language: node_js
node_js:
  - 0.10

このように記載されていますが、nodeのバージョンが古く、mochaが正常にビルドせず、travis ciを通過できません。

SyntaxError: Use of const in strict mode.

- 0.10 を別の新しいバーションに変更しましょう。

3.初めてのnpm パッケージ公開
「npmに公開」らへんからとても参考になります。(バージョンの上げ方知らずに手動でpackage.jsonのversion変更してた・・・)

https://www.npmjs.com/package/class-search
他にも参考にしたサイトは思い出し次第追記していきます。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4