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

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

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

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

ESLint

ESLintは、JavaScriptのための構文チェックツール。全検証ルールを自由に on/offでき、独自のプロジェクトに合わせたカスタムルールを容易に設定することが可能。公開されている様々なプラグインを組み込んで使用することもできます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

Q&A

解決済

2回答

3101閲覧

プロジェクトごとにnpmパッケージをインストールせずに済む方法を探しています

pochi-chan

総合スコア4

npm

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

ESLint

ESLintは、JavaScriptのための構文チェックツール。全検証ルールを自由に on/offでき、独自のプロジェクトに合わせたカスタムルールを容易に設定することが可能。公開されている様々なプラグインを組み込んで使用することもできます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

0グッド

0クリップ

投稿2021/04/17 18:52

前提・実現したいこと

前提

  • ソースコードをGit管理して複数人で共同開発する
  • ESLint, stylelint, Prettierでコードの品質管理をする
  • 複数プロジェクト(別のリポジトリ)でも共通のESLint, stylelint, Prettierの設定を使いたい
  • メンバーはそれぞれ異なるエディタを使用している
  • メンバーにはWindowsの人もMacOSの人もいる
  • 設定は同じなのに毎回プロジェクトごとに $ npm install したくない
  • 設定をメンバーと共有できないのでグローバルインストールは避けたい

実現したいこと

  • OSやエディタが異なるメンバーでもコードスタイルを統一して共同開発する
  • プロジェクト(リポジトリ)を跨いで使用できるリンターやフォーマッタの設定ファイルが欲しい

(つまり、package.jsonやstylelintrc.json、node_modules等は1つだけにしたい)

以上を実現できる方法は存在するのでしょうか?


考えた案 & 問題点

考えた案①

package.jsonや.eslintrc.jsonなどコード品質管理に必要なものをまとめたリポジトリを作成し、各自クローンする。
そこで得たpackage.jsonを各プロジェクトより上の階層にシンボリックリンクを貼ってそこで $ npm install し、プロジェクトを跨いだ共通のnode_modulesを作成する。

(問題点)

  • メンバーの開発環境が異なるため各自で設定方法が異なるかもしれない(メンバーにはWeb初心者もいる)
  • エディタによってはVSCodeにあるようなESLintやPrettierのプラグインがないかもしれない

考えた案②

Gitのコミット前にpre-commit hookでリンターとフォーマッタを走らせる。

(問題点)

  • pre-commitは.gitディレクトリ配下にあるのでプロジェクトで共有できない。
  • huskyを使えばhookを共有できるが結局プロジェクトディレクトリで $ npm install することになるのでは?

補足情報(使用ツール)

  • Node.js(npm)
  • Git
  • ESLint
  • Prettier
  • stylelint

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

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

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

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

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

maisumakun

2021/04/18 00:19

> 設定は同じなのに毎回プロジェクトごとに $ npm install したくない なんのために、でしょうか?
pochi-chan

2021/04/18 01:04

どのプロジェクトにも共通のパッケージを利用するのであれば、プロジェクトごとにローカルインストールするのは手間だなと思った次第です。 あと、プロジェクトディレクトリが散らかるのを避けるためです。 また、1つにすれば容量の節約にも繋がります。
guest

回答2

0

ベストアンサー

普通にプロジェクトごとに分けたほうがいい。
一見便利なようで普通と違う使い方したら後で困るだけ。

コードスタイルは手元ではなくCIなどの段階で強制する。

投稿2021/04/17 23:53

kawax

総合スコア10377

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

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

pochi-chan

2021/04/21 13:51

回答ありがとうございました。 プロジェクトごとに分けることにします! コードスタイルはGitのpre-commitを利用してコミット前にチェックをかけるようにするつもりです。
guest

0

どのプロジェクトにも共通のパッケージを利用するのであれば

おそらく、この前提は早晩破綻するかと思います。開発を進めれば、独自のパッケージが必要となってくるものです。

投稿2021/04/18 01:06

maisumakun

総合スコア145184

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

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

pochi-chan

2021/04/21 13:46

回答ありがとうございました。 プロジェクトごとにローカルインストールすることにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問