質問: ### 前提・実現したいこと lovefieldというプロジェクトをビルドして、dist/以下のファイルを再現したいと思っています。 ### 発生している問題・エラーメッセージ Dev Setup for Lovefieldを読み、下記を実行してビルドをしたところ、 ``` git clone https://github.com/google/lovefield cd lovefield npm install gulp build target=lib ``` dist/lf.js が出来たのですが、これが配布されているどのdist/*.jsとも違います。 (本来の記述ではnpm updateとなっているところを、npm installにしています) **質問** そもそもjavascriptよく分かってないのですが、どれとも一致しない原因が、package-lock.jsonがgit管理されてないせいだと思っています。何か勘違いしているのでしょうか? npmで管理されているパッケージって、そもそも一般的に依存パッケージのバージョンをどう管理するものなのかも、合わせてご教示頂けると幸いです。 ### 試したこと gulp実行時、mode=debugも追加指定して中を見る限り、Closure Compilerは正しく動いているようですが、出力されているシンボルが違ってるように見えます。Closure Compilerのバージョンが違っているからだと思っています。 ``` $ npm list | grep compiler ├── google-closure-compiler-java@20191027.0.0 ├─┬ gulp-closure-compiler@0.4.0 │ ├─┬ google-closure-compiler@20151015.7.0 ``` Closure CompilerはJavaバージョン(google-closure-compiler-java)が稼働しているようなのですが、これのバージョンが20191027.0.0と新しすぎるから、そう思っています。 ### 補足情報(FW/ツールのバージョンなど) OS: Ubuntu 19.04 npm: 6.12.0 JRE: openjdk 11.0.4 2019-07-16
回答: > > そもそもjavascriptよく分かってないのですが、どれとも一致しない原因が、package-lock.jsonがgit管理されてないせいだと思っています。何か勘違いしているのでしょうか? > > > その理解であってます 直接の依存ではないパッケージのバージョンが変化したりしているのでしょう。ビルドしたときの情報をだれかから聞かないと無理でしょう。 というか最後のリリース3年くらい前でNode.jsが4のころに見えます。masterはそこからcommitは進んでいるようです。 まあ同一の生成物を作るのは今となっては実質無理でしょう。 > > npmで管理されているパッケージって、そもそも一般的に依存パッケージのバージョンをどう管理するものなのかも、合わせてご教示頂けると幸いです。 > > > package-lock.jsonをgit管理に含めます。