--save でインストールされたモジュールを確認すると、依存関係に表示されます。
依存関係内のモジュールは、運用環境の依存関係を表します。 jQueryなど。
しかし、私が理解できないのは、jQuery を例として考えてみることです。依存関係を依存関係で宣言する必要があるのはなぜですか?
本番環境では、依存関係をまったく使用せずに、スクリプト タグを直接使用して jQuery を参照します。運用環境が依存するモジュールが依存関係で宣言されている場合はどうなりますか?スクリプト タグは自動的に追加されますか? それとも、たとえば、モジュールをパッケージ化するとき、運用環境モジュールをパッケージ化するときに、依存関係内のすべての依存関係がパッケージ化されますか?しかし、私の知る限り、たとえば webpack モジュールをパッケージ化する場合、require モジュールによって作成された依存関係グラフに基づいてパッケージ化されるため、なぜ本番環境の依存関係を dependency で宣言する必要があるのかがよくわかりません。
実際の開発では多くのモジュールを使用します。一部のモジュール (gulp、babel など、これらは devDependency に配置されます) は開発環境でのみ使用されますが、jquery はプロジェクトをデプロイするときに実稼働環境で使用されます。本番環境では、npm install --production を実行すると、依存関係にあるモジュールのみがインストールされるので非常に便利です。
実際のところ、そのフィールドはノード用に設計されているため、それを書くかどうかは関係ありません。
より具体的に言うと、フロントエンド プロジェクトとして、依存関係はパッケージ化されるかスクリプト タグで導入されるため、deps フィールドの内容は最終的なコードにはまったく影響しません。
使用する場合は
<script>
加入模块的话,这个引入JS/CSS的方法本身用不到npm包管理
,可以直接忽略package.json
設定の問題webpack
进行打包。webpack在模块打包时是根据require的模块创建的依赖图表来打包的,这的确没错。但是之后还有一步,就是webpack通过依赖图表进行打包的时候,如果依赖图表里有jQuery依赖,webpack还是要去找jQuery的文件,然后注入到打包的文件之中。如果你不写dependencies的话,在团队开发中,另一个人改了一点代码,然后用npm install
のような依存関係パッケージをインストールしてから再パッケージすると、webpack は jQuery に依存する依存関係グラフを作成しますが、webpack は、node_modules 内のターゲット ファイルに挿入する jQuery コードを見つけることができないため、再パッケージすると失敗します。もちろん、あなただけが開発している場合は、これを無視できます。もちろん、依存関係には、以前に書いたnode.js クローラーなどの別のアプリケーションがあります。このクローラはノードを直接使用して JS コードを実行するため、require はこれらの依存関係を JS ファイルにインストールした後にのみ対応するパッケージを読み取ることができます。
require()
的包都需要写在dependencies里,部署的时候用npm install
ページを開発するにはwebpackを使用する必要があるため、nodeを使用すると思います。そうしないと、依存関係とスクリプトの関係について質問することはできません。両者の間には何のつながりもありません。
ここでは 3 つのものを混ぜ合わせています:
package.jsonの依存関係管理
webpackの依存関係管理
HTMLでのスクリプトの紹介
package.jsonの依存関係管理
nodeはページ開発だけでなく、サーバープログラムの開発やJSライブラリの開発など、さまざまな用途に使用できます。依存関係は、プロジェクトが によって使用されるときに、プロジェクトの依存関係を記録および保証します。 devDependency は、プロジェクトが によって開発されるときに、プロジェクトの依存関係を記録および保証します。 例として、ライブラリを開発し、NPM で公開する準備をします。
を使用する必要がある場合、devDependency には babel と eslint が含まれます。lodash.sample
,开发时使用es6,并且还使用eslint对代码风格进行规范。那么dependencies中就有lodash.sample
依存関係により、誰もが私たちのライブラリをインストールするとき、lodash.sample
都会被安装(否则这个库将无法正确运行);devDependencies保证任何人在(或者你自己在其他设备上)对这个项目进行修改(开发)时,通过npm install
webpackの依存関係管理Webpack は、ページ開発で使用できる構築ツールであり、他の場所でも使用できます。 Webpack の依存関係管理は
を通じて依存関係を検索しますが、依存関係には依存しません。require
引き続き上記のライブラリの例を使用すると、パッケージ化に webpack を使用できます (その場合、devDependency に webpack が存在するはずです)。電話をかけても。HTMLでのスクリプトの紹介
webpack を使用してページを開発する場合、パッケージ化された js ファイルは最初に HTML のスクリプトとして手動で導入されますが、その後、このプロセスを自動的に完了するのに役立つプラグインが存在します。その後、vue-cli などの一部のスキャフォールディング ツールには責任ある Webpack 構成が組み込まれ、プロセス全体が最適化および自動化されました。さらに、開発プロセス全体がノード内で完了するため、依存関係とスクリプトの間に関係があると誤解する可能性があります。npm install --save
了其他十几个模块,webpack时,也只会将lodash.sample
工作环境改变
的时候,你的项目要是想正常运行。必须声明依赖,这样不管在哪里,只需要一句npm install
作業環境を復元し、すべての依存関係を解決できます