项目本地的插件

  • 若要在项目中直接访问API,而不需要创建一个完整的插件,在package.json文件中使用vuePlugins.service选项:
  {
    "vuePlugins": {
      "service": ["my-commands.js"]
    }
  }
  • 每个文件都需要export一个函数,接受插件API作为第一个参数。

Preset

  • 一个Vue CLI preset是一个包含创建新项目所需要预定义选项和插件的JSON对象,然后用户无需在命令提示中选择她们

  • vue create过程中保存的preset在home目录下的一个配置文件中(~/.vuerc),这个文件允许修改,调整,添加,删除保存好的preset。

{
  "useConfigFiles": true,
  "cssPreprocessor": "sass",
  "plugins": {
    "@vue/cli-plugin-babel": {},
    "@vue/cli-plugin-eslint": {
      "config": "airbnb",
      "lintOn": ["save", "commit"]
    },
    "@vue/cli-plugin-router": {},
    "@vue/cli-plugin-vuex": {}
  }
}
  • 这些额外的配置将会根据useConfigFiles的值被合并到package.json或相应的配置文件中。例如,当"userConfigFiles": true时,config的值会被合并到vue.config.js

允许插件的命令

  • 每个插件在项目创建的过程中都可以注入它的命令提示,当使用preset时这些命令提示会被跳过,Vue CLI设定所有的插件选项都已经在preset中声明过了。

  • 若希望保留命令提示,可使用"prompts": true来允许注入命令提示

远程Preset

  • 通过发布git repo将一个preset分享给其他开发者,这个repo应包含一下文件:

    • preset.json: 包含preset数据的主要文件(必须)
    • generator.js: 生成器,用于注入或修改项目文件
    • prompts.js: 一个可以通过命令行对话为 generator 收集选项的 prompts 文件
  • 使用一下命令来加载远程仓库的preset

  # 从Github repo使用 preset
  vue create --preset username/repo my-project

  # Gitlab 和BitBucket也是支持的
  vue create --preset gitlab:username/repo --clone my-project
vue create --preset bitbucket:username/repo --clone my-project

# 私有服务器
vue create --preset gitlab:my-gitlab-server.com:group/projectname --clone my-project

vue create --preset direct:ssh://git@my-gitlab-server.com/group/projectname.git --clone my-project

加载文件系统中的Preset

  • preset选项的值是一个相对或绝对文件路径,或是以.json结尾,则Vue CLI会加载本地的preset:
# ./my-preset 应当是一个包含 preset.json 的文件夹
vue create --preset ./my-preset my-project

# 或者,直接使用当前工作目录下的 json 文件:
vue create --preset my-preset.json my-project