🐥

Githubにあげた個人のnpmパッケージをインストールする方法

2018/10/25に公開

始めに

publicには公開しないけど、他の案件でも使いますためにローカルで作成したnpmパッケージをインストールする方法について紹介します。
CLIで動作するパッケージの作成方法は以下の記事を参考にして下さい。

https://zenn.dev/numa_san/articles/1c6e95d3e88ada

npmパッケージの作成

まず始めにinstallされるライブラリの作成をします。今回は単純にパスを繋げるだけのものを作ります。

lib.js
const path = require('path');

const testJoin = (a, b) => {
  return path.join(a, b);
};

module.exports = {
  testJoin
};

パッケージ情報をpackage.jsonに記載します。

package.json
{
  "name": "mylib",    // パッケージインストールした際にrequire/importで書くことになる名前
  "version": "1.0.0",
  "description": "",
  "main": "lib.js",   // パッケージインストールの際に参照するJSファイル。上でlib.jsとしたので、その名前が入る
  "private": true,    // 間違ってpublishしないようにprivateにする
  "scripts": {
  },
  "dependencies": {
    "path": "^0.12.7"
  },
  "author": "",
  "license": "ISC"
}

作成したパッケージは以下に配置しました。
https://github.com/TakanoriOnuma/test-library

パッケージのインストール

githubに配置したpackageをインストールする場合は以下のコマンドを実行します。

$ yarn add TakanoriOnuma/test-library.git

フルパスでインストールする場合はgit+ssh://git@github.com/TakanoriOnuma/test-library.gitのように書きます。

インストールができればあとは普段と同じように使用します。

const mylib = require("mylib");
const url = mylib.testJoin("a", "b");
console.log(url);

インストールした内容をこちらのリポジトリに置きましたので、気になる方は参考にしてください。
https://github.com/TakanoriOnuma/test-use-library

ブランチなどを指定してインストール

githubからpackageをインストールする際に#の後ろにブランチやタグを指定してインストールすることができます。

$ yarn add TakanoriOnuma/test-library.git#root

サブディレクトリにあるpackage.jsonをインストールしたい場合

こちらにあるような、ルートではなく、ディレクトリ以下にpackage.jsonがある場合のインストールは先ほどのような方法ではうまくいきません。

https://github.com/TakanoriOnuma/test-library/tree/directory

この場合は面倒ですが、一度cloneしてローカルからインストールする必要があります。

// directoryブランチのコードを.libraryディレクトリにhistoryは一つだけにしてcloneする
$ git clone --depth=1 -b directory git@github.com:TakanoriOnuma/test-library.git .library
$ yarn add file:.library/directory

参考URL

https://www.usagi1975.com/23feb172352/
https://dev.classmethod.jp/server-side/node-js-server-side/private-npm-modules-to-package-json/

GitHubで編集を提案

Discussion