javascript - Pourquoi déclarer des dépendances dans les dépendances?
为情所困
为情所困 2017-06-21 10:11:57
0
5
739

Lorsque vous voyez le module installé par --save, il sera affiché dans les dépendances.
Et les modules en dépendances représentent les dépendances de l'environnement de production. Tel que jQuery.

Mais ce que je ne comprends pas, c'est de prendre jQuery comme exemple. Pourquoi dois-je déclarer des dépendances dans les dépendances ?
Dans un environnement de production, j'utiliserai directement des balises de script pour référencer jQuery, sans aucune dépendance. Que se passe-t-il si les modules dont dépend l'environnement de production sont déclarés dans des dépendances ? Est-ce que cela ajoutera automatiquement des balises de script pour moi ou, par exemple, lors de l'empaquetage de modules, lors de l'empaquetage de modules d'environnement de production, toutes les dépendances des dépendances seront-elles empaquetées ? Mais pour autant que je sache, par exemple, lorsque les modules Webpack sont empaquetés, ils sont empaquetés en fonction du graphe de dépendances créé par le module require, donc je ne comprends pas très bien pourquoi les dépendances de l'environnement de production doivent être déclarées dans les dépendances.

为情所困
为情所困

répondre à tous(5)
我想大声告诉你

Nous utiliserons de nombreux modules dans le développement réel. Certains modules (tels que gulp, babel, ceux-ci sont placés dans les dépendances dev) ne sont utilisés que dans l'environnement de développement, tandis que jquery est utilisé dans l'environnement de production lorsque vous déployez le projet dans un environnement de production. environnement de production, si vous exécutez npm install --production, seuls les modules des dépendances seront installés, ce qui sera très pratique.

Ty80

Le fait est que ce champ est conçu pour le nœud, peu importe que vous l'écriviez ou non.

Pour être plus précis, en tant que projet front-end, vos dépendances sont soit empaquetées, soit introduites avec des balises de script, donc ce qui se trouve dans votre champ deps n'affectera pas du tout le code final.

Peter_Zhu
  • Si vous utilisez <script>加入模块的话,这个引入JS/CSS的方法本身用不到npm包管理,可以直接忽略package.json problème de configuration

  • Si vous installez des packages de dépendances comme webpack进行打包。webpack在模块打包时是根据require的模块创建的依赖图表来打包的,这的确没错。但是之后还有一步,就是webpack通过依赖图表进行打包的时候,如果依赖图表里有jQuery依赖,webpack还是要去找jQuery的文件,然后注入到打包的文件之中。如果你不写dependencies的话,在团队开发中,另一个人改了一点代码,然后用npm install, puis reconditionnez, webpack crée un graphe de dépendances, qui dépend de jQuery, mais webpack ne trouve pas le code jQuery à injecter dans le fichier cible dans node_modules, donc s'il reconditionne, il échouera. Bien sûr, vous pouvez ignorer cela si vous êtes le seul à développer.

  • Bien sûr, les dépendances ont une autre application, comme un robot node.js que j'ai écrit auparavant. Étant donné que ce robot utilise directement le nœud pour exécuter le code JS, require ne peut lire le package correspondant qu'après avoir installé ces dépendances dans mon fichier JS. require()的包都需要写在dependencies里,部署的时候用npm install

淡淡烟草味

Je pense que vous pouvez utiliser node car vous devez utiliser webpack pour développer des pages. Sinon, vous ne poserez pas de questions sur la relation entre les dépendances et le script. Il n'y a aucun lien entre les deux.

Ici vous avez mélangé 3 choses :

  1. Gestion des dépendances de package.json

  2. Gestion des dépendances du webpack

  3. Introduction au script en html

Gestion des dépendances de package.json

node peut non seulement être utilisé pour le développement de pages, mais peut également être utilisé pour faire de nombreuses choses, comme développer des programmes serveur, développer des bibliothèques JS, etc. Dependencies enregistre et garantit les dépendances de votre projet lorsqu'il est utilisé par  ; devDependencies enregistre et garantit les dépendances de votre projet lorsqu'il est développé par . A titre d'exemple, nous développons une bibliothèque et nous préparons à la publier sur NPM. Si vous devez utiliser

, les devDependencies incluent babel et eslint.

lodash.sample,开发时使用es6,并且还使用eslint对代码风格进行规范。那么dependencies中就有lodash.sampleLes dépendances garantissent que lorsque quelqu'un installe notre bibliothèque,

il peut obtenir le même environnement de développement (packaging, transcodage, contraintes, construction, etc.). Pensez-y, si vous êtes sur un autre ordinateur et que vous souhaitez développer la version 2.0 de cette bibliothèque, s'il n'y a pas de dépendances de développement, vous devrez réinstaller manuellement babel et eslint, ou vous devrez copier l'intégralité du projet à partir du projet d'origine. . dossier node_modules.

lodash.sample都会被安装(否则这个库将无法正确运行);devDependencies保证任何人在(或者你自己在其他设备上)对这个项目进行修改(开发)时,通过npm installGestion des dépendances du webpack

Webpack est un outil de création qui peut être utilisé dans le développement de pages et peut également être utilisé à d'autres endroits. La gestion des dépendances de Webpack trouve les dépendances via

, elle ne s'appuie pas sur les dépendances.

requireToujours en utilisant l'exemple de la bibliothèque ci-dessus, nous pouvons utiliser webpack pour l'empaquetage (il devrait alors y avoir webpack dans devDependencies). Même si vous appelez.

Introduction au script en htmlnpm install --save了其他十几个模块,webpack时,也只会将lodash.sample

Lorsque webpack est utilisé pour développer des pages, les fichiers js empaquetés sont d'abord introduits manuellement sous forme de scripts en HTML, mais il existe ensuite des plug-ins pour nous aider à terminer automatiquement ce processus. Plus tard, certains outils d'échafaudage tels que vue-cli avaient une configuration Webpack responsable intégrée, optimisant et automatisant l'ensemble du processus. De plus, l'ensemble du processus de développement est réalisé dans node, ce qui peut vous amener à croire à tort qu'il existe un lien entre les dépendances et les scripts.

Retour à votre question : "Pourquoi devrions-nous déclarer les dépendances de l'environnement de production dans les dépendances"

La raison est la suivante : sans enregistrer ces dépendances, lorsque d'autres personnes (ou vous-même sur d'autres appareils) le redévelopperont, elles ne sauront pas quelles dépendances doivent être introduites dans le projet, et le développement ne sera pas possible. Si vous n'êtes qu'une seule personne et que vous ne changez pas d'ordinateur, il n'est pas nécessaire d'utiliser les dépendances.

淡淡烟草味

工作环境改变的时候,你的项目要是想正常运行。必须声明依赖,这样不管在哪里,只需要一句
npm installVous pouvez restaurer l'environnement de travail et résoudre toutes les dépendances

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!