国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue腳手架vue-cli的學(xué)習(xí)使用教程

2019-11-19 16:25:02
字體:
供稿:網(wǎng)友

vue-cli的模板

  1. vue-cli的腳手架項目模板有webpack-simple 和 webpack
  2. 兩種的區(qū)別在于webpack-simple 沒有包括Eslint 檢查等功能

vue-cli的項目結(jié)構(gòu)

.|-- build              // 項目構(gòu)建(webpack)相關(guān)代碼|  |-- build.js           // 生產(chǎn)環(huán)境構(gòu)建代碼|  |-- check-version.js       // 檢查node、npm等版本|  |-- dev-client.js        // 熱重載相關(guān)|  |-- dev-server.js        // 構(gòu)建本地服務(wù)器|  |-- utils.js           // 構(gòu)建工具相關(guān)|  |-- webpack.base.conf.js     // webpack基礎(chǔ)配置|  |-- webpack.dev.conf.js     // webpack開發(fā)環(huán)境配置|  |-- webpack.prod.conf.js     // webpack生產(chǎn)環(huán)境配置|-- config              // 項目開發(fā)環(huán)境配置|  |-- dev.env.js          // 開發(fā)環(huán)境變量|  |-- index.js           // 項目一些配置變量|  |-- prod.env.js         // 生產(chǎn)環(huán)境變量|  |-- test.env.js         // 測試環(huán)境變量|-- src               // 源碼目錄|  |-- components           // vue公共組件|  |-- store             // vuex的狀態(tài)管理|  |-- App.vue            // 頁面入口文件|  |-- main.js            // 程序入口文件,加載各種公共組件|-- static              // 靜態(tài)文件,比如一些圖片,json數(shù)據(jù)等|  |-- data              // 群聊分析得到的數(shù)據(jù)用于數(shù)據(jù)可視化|-- .babelrc             // ES6語法編譯配置|-- .editorconfig          // 定義代碼格式|-- .gitignore            // git上傳需要忽略的文件格式|-- README.md            // 項目說明|-- favicon.ico |-- index.html            // 入口頁面|-- package.json           // 項目基本信息

package.json文件

package.json文件是項目根目錄下的一個文件,定義該項目開發(fā)所需要的各種模塊以及一些項目配置信息(如項目名稱、版本、描述、作者等)。

自定義npm相關(guān)命令

在package.json文件里有一個scripts字段。

"scripts": { "dev": "node build/dev-server.js", "build": "node build/build.js"}

在開發(fā)環(huán)境下,在命令行中運行npm run dev就相當(dāng)于在執(zhí)行node build/dev-server.js。所以script字段是用來指定npm相關(guān)命令的縮寫的。

dependencies字段和devDependencies字段

  1. dependencies字段指定了項目運行時所依賴的模塊
  2. devDependencies字段指定了項目開發(fā)時所依賴的模塊(項目環(huán)境依賴)
  3. 在命令行中運行npm install命令,會自動安裝dependencies和devDependencies字段中的模塊。

webpack配置相關(guān)

詳情在webpack相關(guān)博客

dev-server.js

......// http-proxy可以實現(xiàn)轉(zhuǎn)發(fā)所有請求代理到后端真實API地址,以實現(xiàn)前后端開發(fā)完全分離// 在config/index.js中可以對proxyTable想進行配置var proxyMiddleware = require('http-proxy-middleware')......// 熱加載要使用webpack-dev-middleware在沒有webpack-dev-server的時候進行熱加載var hotMiddleware = require('webpack-hot-middleware')(compiler)// 當(dāng)html-webpack-plugin模板改變是強制進行頁面重新加載compiler.plugin('compilation', function (compilation) {compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { hotMiddleware.publish({ action: 'reload' }) cb()})})

webpack.base.conf.js

......module.export = { // 編譯入口文件 entry: {}, // 編譯輸出路徑 output: {}, // 一些解決方案配置 resolve: {}, resolveLoader: {}, module: {   // 各種不同類型文件加載器配置   loaders: {   ...   ...   // js文件用babel轉(zhuǎn)碼   {     test: //.js$/,     loader: 'babel',     include: projectRoot,     // 哪些文件不需要轉(zhuǎn)碼     exclude: /node_modules/   },   ...   ...   } }, // vue文件一些相關(guān)配置 vue: {}}

check-version.js

這個文件主要是用來檢測當(dāng)前環(huán)境中的node和npm版本和我們需要的是否一致的。

// 加載語義化版本測試庫var semver = require('semver')// 定制控制臺日志的輸入樣式var chalk = require('chalk')// 引入package.json文件var packageConfig = require('../package.json')var exec = function (cmd) {return require('child_process') .execSync(cmd).toString().trim()}// 定義node和npm版本需求所組成的數(shù)組var versionRequirements = [{ name: 'node', currentVersion: semver.clean(process.version), versionRequirement: packageConfig.engines.node},{ name: 'npm', currentVersion: exec('npm --version'), versionRequirement: packageConfig.engines.npm}]module.exports = function () {var warnings = []// 依次判斷版本是否符合要求for (var i = 0; i < versionRequirements.length; i++) { var mod = versionRequirements[i] if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {  warnings.push(mod.name + ': ' +   chalk.red(mod.currentVersion) + ' should be ' +   chalk.green(mod.versionRequirement)  ) }}...}

.babelrc

Babel解釋器的配置文件,存放在根目錄下。Babel是一個轉(zhuǎn)碼器,項目里需要用它將ES6代碼轉(zhuǎn)為ES5代碼

// 設(shè)定轉(zhuǎn)碼規(guī)則"presets": ["es2015", "stage-2"],// 轉(zhuǎn)碼的一些插件"plugins": ["transform-runtime"],"comments": false

.editorconfig

該文件定義項目的編碼規(guī)范,編輯器的行為會與.editorconfig 文件中定義的一致,并且其優(yōu)先級比編輯器自身的設(shè)置要高,這在多人合作開發(fā)項目時十分有用而且必要。

root = true[*] // 對所有文件應(yīng)用下面的規(guī)則charset = utf-8          // 編碼規(guī)則用utf-8indent_style = space        // 縮進用空格indent_size = 2          // 縮進數(shù)量為2個空格end_of_line = lf          // 換行符格式insert_final_newline = true    // 是否在文件的最后插入一個空行trim_trailing_whitespace = true  // 是否刪除行尾的空格

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 塔河县| 江油市| 延庆县| 涿鹿县| 红河县| 井研县| 苍山县| 石河子市| 梅州市| 张北县| 简阳市| 天水市| 甘南县| 黄山市| 马鞍山市| 义乌市| 宜君县| 株洲县| 抚松县| 芒康县| 盱眙县| 天祝| 濉溪县| 平泉县| 五家渠市| 基隆市| 泰顺县| 玉山县| 华容县| 东源县| 年辖:市辖区| 五大连池市| 鹿泉市| 乌拉特后旗| 永兴县| 泗洪县| 虞城县| 盐边县| 乌苏市| 衡水市| 巴林左旗|