array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Vue 爬坑之路 — vue-cli 3.x 搭建项目 - 爱码网

一、安装 @vue/cli

更新到 3.x 之后,vue-cli 的包名从vue-cli 改成了 @vue/cli

如果之前全局安装了旧版本的vue-cli (1.x 或 2.x),首先需要使用以下命令卸载掉

// 如果没有安装旧版本的 vue-cli 可以跳过卸载直接安装

npm uninstall vue-cli -g 
# OR
yarn global remove vue-cli 

然后重新安装新版本的 @vue/cli

npm install -g @vue/cli
# OR
yarn global add @vue/cli

安装完成后,可以使用 vue -V(这个 V 是大写的)查看版本号

Vue 爬坑之路 — vue-cli 3.x 搭建项目

二、创建项目的三种方式

1.x2.xvue-cli 采用 init 命令创建项目

vue init webpack project-name

3.x也支持这种方式,其运行结果和以前一样,

但刚入行的前端萌新可能还不习惯命令行的构建方式

于是 vue/cli 3.x 新增了图形化的方式来创建项目

首先还是得在指定目录下打开终端,然后运行:

vue ui

然后浏览器会打开一个页面,可以按照页面将的引导创建项目

不过我还是建议使用命令行工具,这才符合一个程序员的身份嘛

vue create project-name

这里的project-name是自定义的项目名称,命令执行之后,会生成对应文件夹

三、参数详解

使用 create 命令创建项目的时候,有很多配置项需要选择

如果对某项配置项不熟悉,可以直接选择第一个选项

首先需要选择模块

Vue 爬坑之路 — vue-cli 3.x 搭建项目

如果选择默认选项 default,将会构建一个最基本的 vue 项目(没有 vue-router 也没有 vuex)

这里推荐选择第二项Manually select features

然后根据自己的需求,使用空格键选择具体的模块

Vue 爬坑之路 — vue-cli 3.x 搭建项目

如果不熟悉上面的模块分别代表什么,可以先按照上图的示意勾选模块

这样就会创建一个包含vue-routervuexpostcss 的项目

勾选之后,使用回车键进入下一步

Vue 爬坑之路 — vue-cli 3.x 搭建项目

这里需要选择路由模式,yes 是 history模式,no 是 hash模式

萌新可以先从 hash 模式入手,不过实际项目通常采用 history 模式

然后选择一个合适CSS 的预编译工具

Vue 爬坑之路 — vue-cli 3.x 搭建项目

都不熟悉的话就选 sass 或者 less,因为 stylus不支持原生CSS 写法

后面还需要选择ESLint的校验规则,格式化的时机,和各个插件的配置项的位置,不熟悉的话就选第一个

然后就有了这样的过程:

Vue 爬坑之路 — vue-cli 3.x 搭建项目

最后选择是否将配置项保存为预设,然后配置完成,开始生成项目

项目生成之后,已经自动安装了相关的依赖项,这时候可以直接启动项目:

npm run serve

四、vue.config.js

完成以上步骤之后,就已经可以开发vue项目了,但无法满足定制化的开发需求

这时候就需要手动创建一个 **vue.config.js,**官方的配置文档可以参考这里

这里我贴一个常用的vue.config.js

// vue.config.js
module.exports = {
  baseUrl: '/',
  outputDir: 'dist', // 打包的目录
  lintOnSave: true, // 在保存时校验格式
  productionSourceMap: false, // 生产环境是否生成 SourceMap
 devServer: {
    open: true, // 启动服务后是否打开浏览器
    host: '0.0.0.0',
    port: 8080, // 服务端口
    https: false,
    hotOnly: false,
    proxy: null, // 设置代理
    before: app => {}
  },
}

vue.config.js 还有很多很厉害的配置项

比如构建多页面应用pages改造为 pwa 的配置项 pwa、高级CSS打包方案 css

这里就不细说了,如果有兴趣可以仔细研究官方文档

五、环境变量

有过一定开发经验的小伙伴都知道,一个项目通常有三种模式:

开发模式 development、测试模式 test、生产模式 production

而开发中通常会根据环境变量 NODE_ENV 来进行区分这三种开发模式

然后通过很多的switch... case 来判断

3.x的项目中就不需要写switch...case

直接在根目录下创建以.env为前缀的文件

Vue 爬坑之路 — vue-cli 3.x 搭建项目

这里的.env 文件保存的是公用参数,可以在所有模式中获取到

而其他文件中的参数,只能在对应模式中获取到

比如 .env.development 中的参数,就只有在development 模式下生效

然后在文件内添加对应的键值对

Vue 爬坑之路 — vue-cli 3.x 搭建项目

然后在 package.json 的 scripts 命令中添加对应的mode

Vue 爬坑之路 — vue-cli 3.x 搭建项目

// servebulid 都有默认的模式,但最好是将模式显式的展现在配置项中

然后就能在项目中获取到对应模式下的值

Vue 爬坑之路 — vue-cli 3.x 搭建项目

关于环境变量和模式的详情,可以参考官方文档
出处:https://www.jianshu.com/p/51e5356c69fe

相关文章: