web-dev-qa-db-fra.com

Quelles sont les différences entre vue-cli et vue-cli-service?

J'ai utilisé Vue depuis un certain temps maintenant, mais je ne fais que commencer avec la CLI et je suis un peu confus.

J'ai installé @vue/cli et si je tape vue dans la ligne de commande, j'obtiens:

Usage: vue <command> [options]

Options:
  -V, --version                              output the version number
  -h, --help                                 output usage information

Commands:
  create [options] <app-name>                create a new project powered by vue-cli-service
  add [options] <plugin> [pluginOptions]     install a plugin and invoke its generator in an already created project
  invoke [options] <plugin> [pluginOptions]  invoke the generator of a plugin in an already created project
  inspect [options] [paths...]               inspect the webpack config in a project with vue-cli-service
  serve [options] [entry]                    serve a .js or .vue file in development mode with zero config
  build [options] [entry]                    build a .js or .vue file in production mode with zero config
  ui [options]                               start and open the vue-cli ui
  init [options] <template> <app-name>       generate a project from a remote template (legacy API, requires @vue/cli-init)
  config [options] [value]                   inspect and modify the config
  upgrade [semverLevel]                      upgrade vue cli service / plugins (default semverLevel: minor)
  info                                       print debugging information about your environment

  Run vue <command> --help for detailed usage of given command.

J'ai créé un projet avec vue et je devais installer @vue/cli-service-global pour une raison dont je ne me souviens pas.

Après cela, cependant, j'ai remarqué:

'vue-cli-service' is not recognized as an internal or external command

Et c'est parce que j'ai dû installer @vue/cli-service . Maintenant, quand je tape vue-cli-service en ligne de commande, j'obtiens:

  Usage: vue-cli-service <command> [options]

  Commands:

    serve     start development server
    build     build for production
    inspect   inspect internal webpack config

  run vue-cli-service help [command] for usage of a specific command.

Apparemment, je peux créer, servir et inspecter avec les deux outils CLI. Ma question est - quelle est la différence entre eux? Le readme de @vue/cli et @vue/cli-service n'a qu'un lien vers cette page où aucune réponse n'est donnée à cette question.

Que puis-je faire avec l'un que je ne peux pas faire avec l'autre? Ai-je besoin des deux?

10
dodov

@vue/cli-service-global est un package qui vous permet d'exécuter vue serve et vue build sans aucune dépendance locale .

@vue/cli-service est un package qui fait réellement ces vue serve et vue build, tous les deux @vue/cli-service-global et @vue/cli en dépendent.

Si vous utilisez @vue/cli alors vous n'avez pas besoin d'installer deux autres indépendamment, car il a déjà @vue/cli-service dans ses dépendances.


Ajouté: Juste pour être sûr, je vais l'expliquer plus:

@vue/cli:

  1. add, create, config, ui et autres commandes
  2. build et serve commandes via @vue/cli-service-global paquet
  3. inspect commande par @vue/cli-service package (dépendance locale)

@vue/cli-service-global:

  1. build, inspect et serve commandes via @vue/cli-service paquet

@vue/cli-service:

  1. build, inspect et serve commandes

Vous devez donc installer @vue/cli uniquement et supprimez les deux autres.


Ajouté: Clarification sur l'utilisation de vue-cli-service: Lorsque vous créez un projet à l'aide de vue create commande, @vue/cli fait un lien vers vue-cli-service binaire à l'intérieur ./node_modules/.bin du projet créé.

Ensuite, vous pouvez l'utiliser comme ceci:

  1. Accédez-y directement en tant que vue-cli-service à l'intérieur npm scripts (package.json):

    "scripts": {
      "watch": "vue-cli-service build --watch"
    }
    
  2. Accédez-y depuis le shell: ./node_modules/.bin/vue-cli-service build --watch. Vous pouvez même ajouter ./node_modules/.bin à votre Shell PATH et accédez-y directement depuis le Shell en tant que vue-cli-service.
13
Styx