vue-cli简介(中文翻译)

vue-cli是一个简单的vuejs脚手架命令行工具。

安装

准备:Node.js(>=4.x,推荐6.x版本),npm版本3以上和Git。

$npm install -g vue-cli

使用

$vue init <template-name> <project-name>
Example:
$vue init webpack my-project

上面的命令会从vuejs-templates/webpack拉取模板并显示提示信息,最后在./my-project/.下面生成项目。

官方模板

vue官方模板的目标是提供一个opinionated(有态度的)、功能齐备的工具化安装开发环境以方便使用者们迅速的开始自己的应用逻辑编程。但是,他们在使用者怎样设计应用代码结构以及像在vue.js中使用哪些库又是un-opinionated(宽容的)。

PS:这里简单介绍以下什么叫opinionated software,什么叫un-opinionated software。一个软件如果是opinionated,那么它会/引导要求你按照它的规则做事,不允许超出框架。而如果一个软件是un-opinionated,那么它自身并没有太多的规则限制,允许你制定自己的框架规则。

所有的官方项目模板都被保存在vuejs-templates organization中。如果有一个新的模板被加入其中,你将可以通过 vue init <template-name> <project-name> 来使用这个模板。你也可以执行 vue list 来查看所有可用的官方模板。

当前可用的模板包括:

  • webpack - 安装一个带有热加载,静态检测,测试&css提取的全功能Webpack + vue-loader
  • webpack-simple - 安装一个用于快速原型设计的简易版webpack + vue-loader
  • browserify - 安装一个带有热加载,静态检测&单元测试的全功能 Browserify + vueify
  • browserify-simple - 安装一个用于快速原型设计的简易版browserify + vueify
  • pwa - 安装一个vue-cli版的基于webpack模板的pwa模板
  • simple - 安装一个在单页面中可以使用的最简vue

自定义模板

官方模板并不能使每个人都满意。你可以轻易的创建一个官方模板的分支并在vue-cli中使用它:

vue init username/repo my-project

username/repo 就是你的分支在gitHub上的速记标识。

存储库速记标识的执行会通过第三方组件download-git-repo。所以你也可以使用 bitbucket:username/repo 来从BitBucket代码库中获取模板(download-git-repo同时支持链接bitBucketgithub)并使用 username/repo#branch命令选取版本分支。

如果你想要从一个私人库中下载资源,你可以使用--clone标识,这样cli就会在内部使用git clone命令从而确保你的SSH keys被使用。

本地模板

除了可以使用GitHub代码库,你也可以使用一个在你本地文件系统中的模板:

vue init ~/fs/path/to-custom-template my-project

从头开始写自定义的模板

  • 一个模板仓库必须包含一个模板目录用来保存模板文件。
  • 一个模板仓库应该为包含一个meta.js/meta.json文件作为元文件。它必须包含以下的字段:
  1. prompts: 用来保存用户选项信息;
  2. filters: 用来对需要渲染的文件进行条件过滤
  3. metalsmith: 用来在链中增加自定义的metalsmith插件
  4. completeMessage: 模板创建之后显示给用户的消息。可以在这里放一些自定义的说明。
  5. complete: 替代completeMessage,你也可以在模板创建之后运行一个函数来执行所有工作.

prompts

元数据文件中的prompts字段是一个对象,包含了对用户的询问信息。对于每一条询问信息,key是变量名value值是inquirer.js 的一个question对象。举例来说

{
  "prompts": {
    "name": {
      "type": "string",
      "required": true,
      "message": "Project name"
    }
  }
}

当所有的询问结束,所有在模板中的文件就会用之前询问得到的结果通过HandleBars重新渲染。

条件prompts

如果想要某一条询问提示在一定条件下显示,可以添加一个when字段。这个字段的value应该关联之前的询问的数据。举例来说

{
  "prompts": {
    "lint": {
      "type": "confirm",
      "message": "Use a linter?"
    },
    "lintConfig": {
      "when": "lint",
      "type": "list",
      "message": "Pick a lint config",
      "choices": [
        "standard",
        "airbnb",
        "none"
      ]
    }
  }
}

只有在用户对"lint"询问提示回答了Yes, lintConfig这条提示才会被触发。

预登记Handlebars Helpers

if_eq和unless_eq是两个最常用的HandleBars Helpers,使用方法如下

{{#if_eq lintConfig "airbnb"}};{{/if_eq}}

自定义Handlebars Helpers

你可能会希望在元文件中自行注册并使用一些额外的HandleBars Helpers特性。对象的key就是helper名:

module.exports = {
  helpers: {
    lowercase: str => str.toLowerCase()
  }
}

注册后, 可以想下面这样使用:

{{ lowercase name }}

文件过滤

元数据文件中的filters字段应该是一个包含文件过滤规则的对象哈希。其中每个条目的key都应该是用于进行glob最小正则匹配的字符串,其对应的value应当是prompt获取到的结果字符串。如

{
  "filters": {
    "test/**/*": "needTests"
  }
}

只有用户对needTests这个询问回答Yes,test下面的文件才会生成 。

注意进行最小匹配的dot选项被配置成了true,默认dotfiles也会被匹配到。

dotfiles: 以.号开头的文件(一般指配置文件)。

跳过渲染

元文件中的skipInterpolation字段应该使用glob进行最小正则匹配。被匹配到的文件会跳过渲染,举例如下:

{
    "skipInterpolation": "src/**/*.vue"
}

Metalsmith

vue-cli 使用metalsmith来生成工程.

你可以定制vue-cli创建的metalsmith builder来注册自定义的插件

{
  "metalsmith": function (metalsmith, opts, helpers) {
    function customMetalsmithPlugin (files, metalsmith, done) {
      // Implement something really custom here.
      done(null, files)
    }

    metalsmith.use(customMetalsmithPlugin)
  }
}

如果你想要在questions被提出前处理metalsmith,那么你需要使用一个以"bofore"作为key的对象。

{
  "metalsmith": {
    before: function (metalsmith, opts, helpers) {},
    after: function (metalsmith, opts, helpers) {}
  }
}

在meta.{js,json}中可以使用的附加数据

  • destDirName - 目标目录名称
{
  "completeMessage": "To get started:\n\n  cd {{destDirName}}\n  npm install\n  npm run dev"
}
  • inPlace - 在当前目录下生成模板
{
  "completeMessage": "{{#inPlace}}To get started:\n\n  npm install\n  npm run dev.{{else}}To get started:\n\n  cd {{destDirName}}\n  npm install\n  npm run dev.{{/inPlace}}"
}

complete函数

参数:

  • data:你可以在completeMessage中访问到的同样的数据
{
  complete (data) {
    if (!data.inPlace) {
      console.log(`cd ${data.destDirName}`)
    }
  }
}
  • helpers: 一些在你记录日志的时候可能用到的帮助信息

chalk: chalk模型

logger: 内置的日志对象

files: 记录生成文件的数组

{
  complete (data, {logger, chalk}) {
    if (!data.inPlace) {
      logger.log(`cd ${chalk.yellow(data.destDirName)}`)
    }
  }
}

安装指定版本号的模板

vue-cli使用第三方插件download-git-repo来下载使用的官方模板。download-git-repo工具允许通过在项目名称后面加上一个#号来指定分支名。

指定一个官方模板的格式是:

vue init ‘<template-name>#<branch-name>‘ <project-name>
Example:

安装webpack-sample vue模板的1.0分支版本

vue init ‘webpack-simple#1.0‘ mynewproject

注意:因为#号的特殊含义,在zsh shells上两边的分号是必须的。

想查看英语原文请看  https://www.npmjs.com/package/vue-cli#vue-build

原文地址:https://www.cnblogs.com/cryRoom/p/8408716.html

时间: 2024-10-01 05:16:22

vue-cli简介(中文翻译)的相关文章

Vue CLI 3搭建vue+vuex 最全分析

一.介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create .vue serve .vue ui 等命令) CLI 服务:@vue/cli-service是一个开发环境依赖.构建于 webpack 和 webpack-dev-server 之上(提供 如:serve.build 和 inspect 命令) CLI 插件:给Vue 项目提供可选功能的 npm 包 (如

如何使用@vue/cli 3.0在npm上创建,发布和使用你自己的Vue.js组件库

译者按: 你可能npm人家的包过成千上万次,但你是否有创建,发布和使用过自己的npm包? 原文: How to create, publish and use your own VueJS Component library on NPM using @vue/cli 3.0 译者: Fundebug 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 尽管我已经在工作上用了Vue.js一段时间,但我从不需要在npm上发布组件.但最近发现在不同的项目重写组件是件非

Vue CLI 3开发中试用UIkit 3组件库

一.UIkit组件库与vuikit简介 在选择好意中的前端开发基本框架后,接下来一个重要任务就是选择一款好的UI组件库.其中,UIkit组件库是一款基于Less+JS的一款轻量级.模块化.响应式的前端UI组件库.特别是,从版本3.0.0 beta 31开始完全脱离了jQuery框架.UIkit组件库的一个重要特点是,其提供的组件大部分是非常基础性的,但是也有一部分组件相当实用,例如Slideshow组件.Upload组件.Video组件等,在github网站上的评价星数是13K,相当不错.另一个

Vue框架简介,实例成员,事件,过滤器,文本、事件和属性指令

目录 Vue框架简介,实例成员,事件,过滤器,文本.事件和属性指令 什么是Vue 为什么要学Vue 如何使用Vue Vue实例成员 1.el: 实例 2.data: 数据 3.methods: 方法 Vue事件 面向对象js Vue过滤器 Vue指令 文本指令 事件指令 属性指令 Vue框架简介,实例成员,事件,过滤器,文本.事件和属性指令 什么是Vue vue框架:渐进式JavaScript框架 ? vue一个环境:可以只控制页面中一个标签,可以控制一组标签,可以控制整个页面,可以控制整个项目

Vue CLI 3.x搭建Vue项目

一.Node安装 windows 1. Node.js (>=8.9, 推荐8.11.0+) Node官网下载 .msi 文件,按步骤下载安装即可. 安装完之后在cmd中输入 node -v,若显示版本号,则说明安装成功. 2. Git(命令行终端) Git官网下载安装即可. Linux apt-get install nodejs node -v apt-get install npm npm -v npm命令1.得到原本的镜像地址 npm get registry 2.设置成淘宝 npm c

在vue cli 3脚手架里引入tinymce 5富文本编辑器

本文主要讲的是在Vue cli 3脚手架搭建的项目里如何引用Tinymce 5富文本编辑器. 请注意识别"版本号",不同版本的配置细节有所不同. 1. tinymce的安装 1. 安装tinymce-vue npm install @tinymce/tinymce-vue -S 2. 安装tinymce npm install tinymce -S 3. 下载中文语言包 tinymce提供的语言包很多,选择下载中文语言包 2. 使用方法 1. 文件操作 在项目根目录的public目录下

JavaScript中函数式编程中文翻译

原著由 Dan Mantyla 编写 近几年来,随着 Haskell.Scala.Clojure 等学院派原生支持函数式编程的偏门语言越来越受到关注,同时主流的 Java.JavaScript.Python 甚至 C++都陆续支持函数式编程.特别值得一提的是,在 nodejs 出现后,JavaScript 成为第一种从前端到后台的全栈语言,而且 JavaScript 支持多范式编程.应用函数式编程的最大挑战就是思维模式的改变———从传统面向对象的范式变为函数式编程范式. <JavaScript

中文翻译为&quot;具象状态传输&quot;的RESTful的架构风格和设计思想

本文标签:  具象状态传输 RESTful架构 RESTful理解 REST   服务器 REST 定义了一组体系架构原则,您可以根据这些,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态.所以在事实上,REST 对 Web的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计.在多年以后的今天,REST的主要框架已经开始雨后春笋般的出现. REST(Representational State Transfer ),有中文翻译为"具象状态传

《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新

为了方便大家的阅读和学习,也是响应网友的建议,在这里为这个系列做一个目录.在目录开始这前,我先来回答之前遇到的几个问题. 1.为什么要学习EF? 这个问题很简单,项目需要.这不像学校,没人强迫你学习! 我学习EF的原因主要是: a.EF是微软推荐的数据库访问技术: b.能提高我的开发效率,我不喜欢写那密密麻麻的SQL: c.比我写的SQL更合理,更快.目前EF生成的SQL的质量已经很高了.你比较熟悉SQL的话,那它在速度上肯定比不上你,新手的话就别跟我争快慢了,能写一像样的SQL就不错了.至少我

《Swift编程语言》中文翻译及读书笔记page25

The Swift Programming Language读书笔记学习笔记 第25页 本页主要说在swift语言里可以使用分号,但分号不作为每条swift语言语句的结尾 而是间隔写在一行的多条swift语句. eg: var x = 194 var y = 184 var z = 7311 上边三行swift语句可写成一行 var x = 194, y = 184, z = 7311 在本页还提及了swift里的int数据,这和其他语言里int整形数据没啥区别. 特别之处1)提及了UInt8