質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1521閲覧

複数のクローズドなJSモジュールの管理方法について教えてください

u83unlimited

総合スコア5

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/06/04 03:53

背景

  • 多くのクローズドなJavaScriptモジュールを保有しています
  • クローズドなモジュール同士で依存関係(入れ子関係)があります
  • 管理の粒度もバージョン管理体制(Gitなし/Git導入済みだけどローカル管理のみ/Git導入済みだが元から借りてたレンタルサバにリモートリポジトリ置いてるetc)もバラバラです
  • GitHubアカウントを持ってますがissue投げたりとかにしか使っておらず、GitHubを使った本格的な運用管理経験がありません。Git自体は数年やっているので大丈夫です。

課題

  • モジュール同士に依存関係があるが、現状手作業でコピペしているためミスの可能性が高い
  • 現状一応表向きの依存関係が2段までなのでまだ何とかなっているが、将来3段以上になった時に無理がくる

検討中の解決方法

  • Gitを導入し、GitHubのクローズドリポジトリに全部上げる
  • npmではなくGitHubからインストールする形にすることにより、クローズドなままモジュールの導入ミスの可能性を無くす

質問内容

  • 制度的、技術的に可能でしょうか
  • その他、見落としてるポイントや注意点があれば教えて下さい

大分前から「Git同士の入れ子」などの方法で調査したりしていたのですが、(ちょくちょく見かけるので需要はあるようですね)、
バージョン管理だけでなく導入も問題となっており、最近になってこの形の方がよりスマートじゃないかと閃いたので質問します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/06/04 04:02

ちょっと何を聞きたいのかわかりません。 「モジュール同士に依存関係」 AがBに依存しているならBはAに依存してはいけません
dodox86

2020/06/04 04:19

> 制度的、技術的に可能でしょうか この手のご質問を見ていつも不思議に思うのが、「なぜ、まず自分で試してみないのか。」と言うことです。gitで管理できそうなら、まず自分で簡単にでも試してみる。そこから現実的に出てくる課題を聞けば、回答もつきやすいと思うのですが。 ローカルでバックアップしておけば、リポジトリの作成に失敗しても再度作れば良いだけ、なはずです。 (JavaScript特有の課題があるのかもしれませんが)
u83unlimited

2020/06/04 09:10

>yambejpさん 依存関係は単方向かつ循環しません。 あとあえて苦言を呈しますが、「~に依存関係がある」という言葉そのものには双方向かどうかの意味はありませんよ。 「モジュール同士」と書いたので勘違いされたかと思いますが、「モジュールに依存関係があり~」では流石にOSSのモジュールと自作モジュールの区別すらできておらず漠然としすぎていると考え、この表現になりました。 双方向に依存関係がある設計がバッドプラクティスなのは常識ですから、「(自作)モジュール同士に単方向の依存関係がある」と読み取ることを期待していたのですが。 正直、日本語読解能力が低いか、あるいは上げ足取り扱いされても仕方ないと感じます……。
think49

2020/06/04 12:10

@u83unlimited さん > 正直、日本語読解能力が低いか、 「同士」は「互いにある共通の関係にある人」を指します。 https://www.weblio.jp/content/%E5%90%8C%E5%A3%AB 「AがBに依存する」は「A=依存する側」「B=依存される側」となり、同じ関係性ではありませんので、「同士」という表現は使いません。 そこで「同じ関係性であるなら、AとBがお互いに依存しているのでは?」に至るのは、論理的に正しいと私は考えます。 yambejpさんは、正しく読解していると思います。
Zuishin

2020/06/04 12:22

dodox86 さんと同意見です。やってみればいいじゃないですか。やり方がわからなければわからないところを聞けばいいと思いますが、「同士」とか「入れ子」とか他人に伝わるかどうかを考えない言葉で説明されても。 npm で依存関係をどうにかしたいなら、パッケージ化しなきゃいけないと思いますが、それはできてるんですか? ここで GitHub が出てくる意味もわかりません。
u83unlimited

2020/06/05 01:03

>think49さん 貴方の仰ることも分かります。 私は正確さを求める余り読みにくい文章になるのも避けたかったので、バランスを考慮してこれが妥当と今も考えているだけで。
Zuishin

2020/06/05 01:08

読みにくいわけですが。
yambejp

2020/06/05 01:09

> 日本語読解能力が低いか、あるいは上げ足取り扱い そういううがった解釈をされるのであれば、私からお伝えすることは もうなにもありません。
u83unlimited

2020/06/05 01:26

>dodox86さん >Zuishinさん 試すのをサボってるのは認めるし、教えて君が嫌われるのも理解してます。 ただ表に出てこないだけで同じ課題を持つ組織・人は多いと考え、ざっくり聞きたいなと思って気軽に投稿したのですが、私が空気読めてなかったようですね……。 >Zuishinさん それがパッケージ化は大体できてますが適切な粒度で切られてないんですよ~。だから実作業的にはそのまま行くのか、どう切るかも難題なんですよね(汗) 私の理解では、 - npmで導入できるのはnpm or GitHub or ローカルディレクトリ指定のみ - npmはオープンオンリー - GitHubはクローズドリポジトリ制度がある 以上により質問の解決方法を考えたのですが……。年単位での課題なので、回答来ないようならいずれ実践して上げます。
Zuishin

2020/06/05 01:30

具体性が無いので回答のしようがないんじゃないですか? 適切な粒度でできてないなら適切な粒度に作り直せとしか。
guest

回答1

0

自己解決

同じ課題の実践例(GitHub以外に置くパターンも含まれますが)が見つかりましたので、これへのリンクを張ることで一旦解決とさせていただきます。
質問の仕方が曖昧すぎたようなので、実践してみて困るようなら細部記載して出し直します……

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

自作の非公開npmモジュールの作成と共通ライブラリ化

[Node.js] プライベート NPM モジュールを任意の package.json で指定する

投稿2020/06/05 06:04

u83unlimited

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問