【Vue實戰之路】一、Vue-cli入門及Vue工程目錄全解。


全面的Vue-cli學習,這一篇就夠了!

一、下載

使用vue-cli前,需先安裝node.js,node的安裝就不贅述,不過在此需要注意:

1. node版本需在4.x以上,首推6.x以上版本(node -v 命令查看)

2. npm要求在 3+ 版本以上 (npm -v 命令查看)

vue-cli下載(推薦NPM方式下載)

npm install -g vue-cli

二、項目初始化

vue init webpack firstVue

這里的webpack為vue-cli最常用的模板名(此模板的項目配置包括:一個全功能的Webpack + vue-loader安裝程序,帶有熱重新加載,linting,測試和css提取),firstVue是項目的文件夾名稱。

*此時的vue-cli是基於Vue2.x版本,若想換為1.x則使用以下命令:

vue init webpack#1.0 firstVue

 

官方將模板分為三類:

第一類為官方模板,通過使用 ”vue init  模板名 項目名” 即可初始化項目信息,具體有以下幾種:

webpack :”一個全功能的Webpack + vue-loader安裝程序,帶有熱重新加載,linting,測試和css提取。

webpack-simple : 簡單的Webpack + vue-loader設置,用於快速原型設計。

browserify :全功能Browserify + vueify設置用熱重裝載,掉毛&單元測試。

browserify -simple :用於快速原型設計的簡單的Browserify + vueify設置。

pwa :基於webpack模板的vue-cli的PWA模板

簡單 :一個HTML文件中最簡單的Vue設置

第二類為自定義模板,自定義模板需要在github中fork請求,這個會在后續的進階中提到。

第三類為本地模板,使用 “ vue init〜/ fs / path / to-custom-template my-project ” 命令進行初始化,這個也會在進階中提到。

三、項目構建

此處先使用最常用的webpack模板,通過 vue init webpack firstVue初始化后,會在當前文件夾下創建firstVue的子文件件,然后鍵入一下命令完成項目的構建:

cd firstVue
npm install
npm run dev

npm install 用以安裝此項目的依賴(此處涉及到包管理器的概念,需要node.js基礎),所有的依賴均存放在文件夾下的pack.json里,查看dependence或devDependences等可以查看。

npm run dev 執行腳本命令下的dev命令,此命令的細節可在pack.json文件里查看script下的dev屬性

腳本命令執行后,會顯示編譯是否成功,通過本機的端口可在服務器環境下訪問項目。

 四、腳手架目錄詳解:

此處通過使用命令查看當前vue版本為2.9.1,-V的v為大寫

vue -V

當前版本的Vue-cli目錄如下:

(1)build目錄:webpack的配置文件目錄

(2)config目錄:用於存放生產環境和開發環境的配置文件

(3)node_modules目錄:存放整個項目的第三方依賴包文件

(4)src目錄:用於存放所有的項目文件(項目源碼),其中main.js為整個項目的入口文件

(5)static目錄:用於存放第三方資源文件

(6)babelrc文件:存放babel的配置信息,當我們使用高級語法,如es6時,需要使用babel的編譯工具,此時會在根目錄下生成babelrc文件用於存放編譯的配置信息。

{
  "presets": [
    ["env", {
      "modules": false
    }],
    "stage-2"
  ],
  "plugins": ["transform-runtime"],
  "env": {
    "test": {
      "presets": ["env", "stage-2"]    }
  }
}

presets:預設文件,即babel在編輯高級語法時需要使用的預設編譯文件(例如箭頭函數編譯插件、類編輯插件等),這些預設都可以在node_modules文件夾下找到,env就是一個預設插件,stage-2位草案階段的高級語法,stage-1代表1,2和3階段,stage-2代表的是2階段和3階段。在node_modules文件夾下也可以找到:如下圖:

plugins:設置插件,transform-runtime就是babel的轉換插件。

comments:將es6語法轉換為es5之后是否增加注釋,true為增加

env:對運行環境做配置:test是為在測試環境下做的配置。

(7)editconfig文件:編輯器的配置文件:

root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

root = true表示當打開一個文件時,EditorConfig 插件在文件的目錄和其每一級父目錄查找 .editorconfig 文件,直到有一個配置文件包含 root = true
EditorConfig 配置文件從上往下讀取,並且路徑最近的文件最后被讀取,匹配到的配置按照讀取順序應用在代碼上,最接近代碼文件的屬性優先級最高
[*]表示對所有文件文件使用 editorconfig,也可以指定某種文件格式
charset = utf-8表示設置文件編碼格式為 utf-8
indent_style = space表示所有的縮進使用空格,包括 tab 鍵產生的空白
indent_size = 2表示設置整數表示規定每級縮進的列數
end_of_line = lf表示統一設置換行符,不同操作系統默認使用不同的換行符
windows 是 crlf,即 \r\n
unix 則是 lf ,即 \n
insert_final_newline = true表示文件都以一個空白行結尾
trim_trailing_whitespace = true表示除去換行行首的任意空白字符

(8)eslintignore:eslint代碼檢查文件設置:

/build/
/config/
/dist/
/*.js
/test/unit/coverage/

此處表示使用eslint對根目錄下的所有js文件以及/build/、/config/、/dist/、/test/unit/coverage/四個目錄下的所有文件進行代碼風格檢測。

(9)eslintrc.js文件:對eslint的配置及導出

module.exports = {
  root: true,  //在父級查找
  parser: 'babel-eslint',  //確定編譯器,babel-eslint基於eslint
  parserOptions: {  //編譯器的配置選項
    sourceType: 'module'   //文件以包模塊的方式導入
  },
  env: {   //配置環境變量
    browser: true,   //瀏覽器環境
  },
  // https://github.com/standard/standard/blob/master/docs/RULES-en.md
  extends: 'standard', //代碼風格的檢測要求,此處要求為標准水平(打開上面鏈接可查看標准要求的書寫規范)
  // required to lint *.vue files
  plugins: [ //添加規范相應文件類型的插件
    'html'
  ],
  // add your custom rules here
  //為相應的檢測添加規則:
  // "off" -> 0 關閉規則
  // "warn" -> 1 開啟警告規則
  //"error" -> 2 開啟錯誤規則
  'rules': {
    // allow paren-less arrow functions
    //箭頭函數規則(定義箭頭函數使不用寫括號)
    'arrow-parens': 0,
    // allow async-await
    //異步規則 允許使用異步語法
    'generator-star-spacing': 0,
    // allow debugger during development
    // 開發過程調試規則 開發環境允許debug 生產環境不允許debug
    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
  }
}

 所有的rules選項均可在 https://github.com/standard/standard/blob/master/docs/RULES-en.md查看,並配置到文件中。

 (10)gitignore文件:在使用git提交文件時,忽略的文件與文件夾

(11)postcssrc文件:postcss配置文件

(12)index.html項目的入口模板

(13)package.json整個項目的配置信息

(14)README.md:項目的說明文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM