Vue创建项目步骤总结

Vue创建项目总结

一、如何创建一个VueDemo项目

  1. 为了更好的管理使用vue框架创建项目,需要在全局中安装vue-cli

    • npm install --global vue-cli //工具将被安装到当前使用的node版本的mode_modules下

    • vue-V //查看是否安装成功,如果安装成功会出现当前vue-cli的版本

    • vue-cli是什么?(脚手架工具)

      • vue-cli是vue命令行工具,需要安装它才能直接通过vue命令来操作其他的操作
      • 如:vue init <template-name> <project-name>
      • vue init webpack dirname
    • vue-cli的作用:

      • 目录结构

      • 本地测试

      • 单元测试

      • 热加载

      • 代码部署

  2. 使用github上提供的模板快速创建vue项目

    • github上提供了5种不同结构的单页面模板,根据情况选择使用

    • 可以使用vue list 查看模板的名称

    • vue init webpack helloworld //vue init为固定的开始,后面的webpack为要创建的模板,helloworld为项目文件夹名称

    • 此时会下载template
      Project name                     //项目名
      Project description              //项目描述
      Author                           //作者
      Vue build                        //构建项目
         1.运行+编译(官方推荐)        //选择第一项
         2.仅运行时
         
      Install vue-router?(Y/n)        //如果需要路由就Y,不需要就n    //Y
      Use ESLint to lint your code? (Y/n)         //是否使用ESLint管理代码   //n
      Setup unit tests with Karma + Mocha? (Y/n)  //是否安装单元测试,我选择n
      Setup e2e tests with Nightwatch(Y/n)?       //是否安装e2e测试 ,我选择n
      
      此时模板已经下载到电脑了,你会在cmd中看见如下信息
      To get started:           //叫你马上开始的意思
         cd helloworld          //进入项目文件夹
         npm install            //使用npm 安装        如果安装了cnpm,也可以使用cnpm,
         npm run dev            //在浏览器运行
         
         这一步必须要在npm run dev  之前执行
      cnpm install --production      //安装生产依赖,即package.json文件里面的dependencies
         即:
         "dependencies": {
             "vue": "^2.3.3",
             "vue-router": "^2.6.0"
         },
         
      
  1. 在安装vue-cli的时候出现的警告
npm-install-vue-cli-g.png

出现如图警告的原因:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.2(node_modules\vue-cli\node_modules\fsevents): //跳过可选的依赖

原因是我的系统不支持fsevents包,fsevents包需要在MaxOSX的环境下才能使用

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os" : "darwin","arch" : "any"} (current: {"os":"win32","arch":"x64"})

“os”代表系统类型,darwin是苹果系统包含的一部分

“arch”代码系统的架构,我当前使用的是win32位,基于x64处理器

二、目录结构分析

vue-dir.png
  • 如下的目录有些是临时加上去的,如果图片上没有可以忽略(一级目录)
|-- build                            // 项目构建(webpack)相关代码
|   |-- build.js                     // 生产环境构建代码
|   |-- check-version.js             // 检查node、npm等版本
|   |-- dev-client.js                // 热重载相关
|   |-- dev-server.js                // 构建本地服务器
|   |-- utils.js                     // 构建工具相关
|   |-- webpack.base.conf.js         // webpack基础配置
|   |-- webpack.dev.conf.js          // webpack开发环境配置
|   |-- webpack.prod.conf.js         // webpack生产环境配置
|-- config                           // 项目开发环境配置
|   |-- dev.env.js                   // 开发环境变量
|   |-- index.js                     // 项目一些配置变量
|   |-- prod.env.js                  // 生产环境变量
|   |-- test.env.js                  // 测试环境变量
|-- src                              // 源码目录
|   |-- components                     // vue公共组件
|   |-- store                          // vuex的状态管理
|   |-- App.vue                        // 页面入口文件
|   |-- main.js                        // 程序入口文件,加载各种公共组件
|-- static                           // 静态文件,比如一些图片,json数据等
|   |-- data                           // 群聊分析得到的数据用于数据可视化
|-- .babelrc                         // ES6语法编译配置,里面有一些插件,这些插件的作用是代码的转换
|-- .editorconfig                    // 编译器的配置,定义代码格式
|-- .eslintignore                    //忽略语法检查的目录文件
|-- .eslintrc.js                     //编译规则配置文件,规则定制文件,规则编译不过的时候可以在这里配置为0
|-- .gitignore                       // git上传需要忽略的文件格式,
|-- favicon.ico                      // link图标
|--.postcssrc.js
|-- index.html                       // 入口页面
|-- package.json                     // 项目基本信息如:可以配置script脚本  ^上箭头代表可以安装当前版本及以上的版本
|-- README.md                        // 项目说明

三、使用ESLint管理代码

  • 出现错误:semi

    • semi Missing semicolon //缺少分号
    • missing ['mɪsɪŋ] 缺少
    • semicolon[semɪ'kəʊlən] 分号
    • 解决问题:在项目的根目录下找.eslintrc.js文件,打开后在rules属性中设置规则
    'rules' : {
        'arrow-parens': 0,                    //允许less箭头功能
        'generator-star-spacing': 0,          
        'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
          'semi' : ['error', 'always']         //设置这行规则(没有分号就报错)
    }
    

  • 格式化代码都出现的错误:indent

    • 连接:eslint.org/docs/rules/indent
    • 解决问题:在项目的根目录下找.eslintrc.js文件,打开后在rules属性中设置规则
    'rules' : {
      'semi' : ['error', 'always'],  // 设置分号结尾
      'indent' : 0        //设置这行规则(空格还是缩进)
    }
    
  • 错误:no-multiple-empty-lines

    • 在script标签中删除所有的空行
    //不正确的
    <script>
      
    </script>
    
    //正确的
    <script>
    </script>
    
  • 错误:no-new
/* eslint-disable no-new */     //跳过校验 no-new 规则
new Vue({
  el : "#body",
  components : {App}    //使用一个组件
});

四、package.json文件

1.package.json
{
  "name": "vue1",
  "version": "1.0.0",
  "description": "A Vue.js project",
  "author": "",
  "private": true,
  "scripts": {
    "dev": "node build/dev-server.js",
    "start": "node build/dev-server.js",
    "build": "node build/build.js"
  },
  "dependencies": {     //生产依赖
    "vue": "^2.3.3",
    "vue-router": "^2.6.0"
  },
  "devDependencies": {      //开发依赖
    "autoprefixer": "^7.1.2",
    "babel-core": "^6.22.1",
    "babel-loader": "^7.1.1",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-preset-env": "^1.3.2",
    "babel-preset-stage-2": "^6.22.0",
    "babel-register": "^6.22.0",
    "chalk": "^2.0.1",
    "connect-history-api-fallback": "^1.3.0",
    "copy-webpack-plugin": "^4.0.1",
    "css-loader": "^0.28.0",
    "cssnano": "^3.10.0",
    "eventsource-polyfill": "^0.9.6",
    "express": "^4.14.1",
    "extract-text-webpack-plugin": "^2.0.0",
    "file-loader": "^0.11.1",
    "friendly-errors-webpack-plugin": "^1.1.3",
    "html-webpack-plugin": "^2.28.0",
    "http-proxy-middleware": "^0.17.3",
    "webpack-bundle-analyzer": "^2.2.1",
    "semver": "^5.3.0",
    "shelljs": "^0.7.6",
    "opn": "^5.1.0",
    "optimize-css-assets-webpack-plugin": "^2.0.0",
    "ora": "^1.2.0",
    "rimraf": "^2.6.0",
    "url-loader": "^0.5.8",
    "vue-loader": "^12.1.0",
    "vue-style-loader": "^3.0.1",
    "vue-template-compiler": "^2.3.3",
    "webpack": "^2.6.1",
    "webpack-dev-middleware": "^1.10.0",
    "webpack-hot-middleware": "^2.18.0",
    "webpack-merge": "^4.1.0"
  },
  "engines": {
    "node": ">= 4.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}
2.dependencies与devDependencies
  • dependencies生产时需要的依赖
  • devDependencies开发时需要的依赖
  • 运行npm install命令,会自动安装dependencies和devDependencies字段中的模块
3.script 字段
  • script字段是用来指定npm相关命令的缩写的
  • 如在命令行中运行npm run dev就相当于在执行node build/dev-server.js
"scripts": {
    "dev": "node build/dev-server.js",
    "start": "node build/dev-server.js",
    "build": "node build/build.js"
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容