Каковы различия между vue-cli и vue-cli-service? - PullRequest
0 голосов
/ 18 января 2019

Я уже некоторое время пользуюсь Vue, но я только начинаю работать с CLI и немного запутался.

Я установил @vue/cli и, если я наберу vue в командной строке, я получу:

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.

Я создал проект с vue, и мне нужно было установить @vue/cli-service-global по какой-то причине, которую я не могу вспомнить.

Однако после этого я заметил:

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

И это потому, что мне пришлось установить @vue/cli-service. Теперь, когда я набираю vue-cli-service в командной строке, я получаю:

  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.

По-видимому, я могу создавать, обслуживать и проверять оба инструмента CLI. У меня вопрос - в чем разница между ними? Как в readme из @vue/cli, так и @vue/cli-service есть только ссылка на эту страницу , где на этот вопрос не дан ответ.

Что я могу сделать с одним, что я не могу сделать с другим? Мне нужны оба?

1 Ответ

0 голосов
/ 18 января 2019

@vue/cli-service-global - это пакет, который позволяет запускать vue serve и vue build без каких-либо локальных зависимостей .

@vue/cli-service - это пакет, который фактически выполняет эти vue serve и vue build, оба @vue/cli-service-global и @vue/cli зависят от него.

Если вы используете @vue/cli, вам не нужно устанавливать еще два независимо, так как он уже имеет @vue/cli-service в его зависимостях.


Добавлено: Просто чтобы быть уверенным, я объясню это более подробно:

@vue/cli:

  1. add, create, config, ui и другие команды
  2. build и serve команды через @vue/cli-service-global пакет
  3. inspect команда через @vue/cli-service пакет (локальная зависимость)

@vue/cli-service-global:

  1. build, inspectи serve команды через @vue/cli-service пакет

@vue/cli-service:

  1. build, inspect и serve

Итак, вам нужно установить только @vue/cli и удалить два других.


Добавлено: Разъяснение по поводу использования vue-cli-service: когда вы создаете проект с помощью команды vue create, @vue/cli делает ссылку на двоичный файл vue-cli-service внутри ./node_modules/.bin созданного проекта.

Затем вы можете использовать его следующим образом:

  1. Доступ к нему напрямую как vue-cli-service внутри npm скриптов (package.json):

    "scripts": {
      "watch": "vue-cli-service build --watch"
    }
    
  2. Доступ к нему из оболочки: ./node_modules/.bin/vue-cli-service build --watch.Вы даже можете добавить ./node_modules/.bin к вашей оболочке PATH и получить к ней доступ непосредственно из оболочки как vue-cli-service.
...