1. 程式人生 > >Vue—九天磨一劍之es6模組規範,webpack,vue-cli腳手架的使用

Vue—九天磨一劍之es6模組規範,webpack,vue-cli腳手架的使用

es6模組化

  • es6與node

    • es6定義了模組化功能,匯入模組和匯出模組,import export (seajs,requirejs)
    • 在node中不能直接使用,不支援es模組,node支援commonjs
  • 前端模組化的使用
    1 定義一個模組 一個js檔案就是一個模組仍然適用
    2 匯出一個模組 export
    3 使用一個模組 import

  • 引入模組依賴

<script src="https://google.github.io/traceur-compiler/bin/traceur.js
"></script>  //當瀏覽器版本較低時,不支援es6語法,引入包來解析
<script
src="https://google.github.io/traceur-compiler/bin/BrowserSystem.js ">
</script> <script src="https://google.github.io/traceur-compiler/src/bootstrap.js "></script> <script src="main.js" type="module"></script>//表示當前引入的是一個模組
  • 匯入匯出模組
    import一般放在檔案的最上面
    (1) 方式一:
模組一中:
export let
str ='123';//匯出的時候必須要名字,通過export匯出一個變數 會在內部宣告一個物件 把變數名和值作為key和value放到這個物件中匯出 模組二: import {str} from './A.js' //匯入時解構賦值 或者 import * as 任意名字 from './A.js'//此時接收的是模組一的物件

問題:
Alt text
引入外部解析包的原因,將外部解析包依賴去掉以後,就正常了

(2)方式二:

模組一:
export default str
模組二:
import 任意名字 from 地址

webpack

webpack包含了打包,載入模組來實現編譯 這兩大功能


babel手動編譯麻煩,現在流行的自動編譯工具有webpack gulp grunt,使用vue都用webpack.

定義:強大的模組載入器和打包工具(將很多檔案打包成一個,在開發階段使用,打包好了,上線不需要)
- Webpack把所有東西都看成是模組,這是Webpack設計原則之一。不管什麼資源,都變成了可配置的,都通過loader,plugins配置
- 一般src資料夾下存放原始碼,dist檔案加下存放要上線的程式碼

  • 使用
    1. 安裝:如果安裝全域性,可能會導致版本的差異,故現在都將其安裝到專案開發依賴中,可以使每個人的版本統一.
npm i webpack --save-dev
  1. 在package.json中配置指令碼,在scripts欄位裡面加上一個build欄位對應webpack.cmd,在當前資料夾的命令列下執行npm run build,會執行到webpack,再在webpack.cmd中找到webpack.js,但是這個時候的環境就已經變成了該目錄了.
    Alt text

Alt text

  1. 在當前目錄下建立webpack.config.js檔案,webpack預設是commonjs規範,可以直接在要打包的js中使用commonjs和es6規範,但是預設是不支援es6轉化的,只能打包,es6轉es5要用到babel編譯工具

babel

  • babel-core 是babel的核心,使用babel必須安裝
  • babel-loader 翻譯官,用來翻譯語法,但是它本來不懂
  • babel-preset-es2015 翻譯官學會了es6語言,能轉化成es5了

解析es7語法

  • es2015 stage-3 stage-2 stage-1 stage-0 stage不斷精簡才實現es6

解析css

先將css看成一個模組(webpack打包),使用css-loader翻譯官來解析,cssloader翻譯官會將css變成js,這樣的話,我們也會在dist資料夾中接收到bundle.js,但是這個時候css並不能作為標籤使用
使用:
(1) 在main.js將css檔案引入,因為我們的入口是main,這樣也會解析css
(2)webpack.config.js配置,通過style-loader來將打包成js的css轉化成style標籤放在bundle.js中使用

{test: /\.css$/, use: ['style-loader', 'css-loader']} 

解析less

需要less 和less-loader

解析圖片

如果直接使用js引入圖片,預設不會進行打包檔案,直接路徑就是字串,這樣在輸出的js中路徑如果使用的相對路徑就不對了,使用絕對路徑的話,換個電腦也不對了.

  • base64碼
    小圖片base64 小於8k轉base64 設定大小 超過的時候將檔案直接輸出 一般以8k為準

  • 方案一:背景圖片
    webpack會去打包,但是仍然需要一個loader file-loader url-loader

  • 方案二:main.js中引入圖片的方法

import img from './1.jpg'
let oImg = document.createElement('img');
oImg.src = img;
document.body.appendChild(oImg);

index.html

打包html

以src下的html作為模板,打包後的html會預設將打包後的js檔案引入

 plugins:[
        new HtmlWebpackPlugin({
            filename:'index.html', //預設打包出的檔案index.html
            template:'./src/index.html',
        })
    ]

npm run build

  • 會輸出實體檔案dist資料夾,速度會很慢,一般上線的時候使用

npm run dev

  • 一般我們本地跑一個伺服器,當檔案變化,重新整理瀏覽器
  • Alt text

基礎webpack用法

使用的包:

npm i webpack babel-core babel-loader babel-preset-es2015 babel-preset-stage-0 css-loader less less-loader sass-loader file-loader url-loader html-webpack-plugin webpack-dev-server --save-dev

vue-cli

vue-cli 腳手架(將基礎的東西搭建好,給你自動生成模板工程)
vue-router是 vue路由外掛 支援你單頁應用的
vue-loader是webpack下loader外掛 可以把.vue檔案 輸出成元件,.vue檔案基於webpack構建的

  • 安裝 命令列工具 安裝後命令行中會多vue命令.
vue --help
vue --list
vue init webpack(模板名) webpack-pro(專案名)
cd 專案
npm install
npm run dev
  • 更改埠號

    專案工程資料夾-> config ->index.js->更改埠號
    Alt text

  • vue.esm.js
    支援es6的vue.js

  • runtime+compiler
    如果選擇的是runtime,不支援template

  • style標籤scoped屬性
    Chromium 最近實現了一個HTML5的新特性:範圍樣式,又叫做

相關推薦

Vue九天es6模組規範,webpack,vue-cli腳手架的使用

es6模組化 es6與node es6定義了模組化功能,匯入模組和匯出模組,import export (seajs,requirejs) 在node中不能直接使用,不支援es模組,node支援commonjs 前端模組化的使用 1 定義一個

十年,美國巨頭視頻網站 Hulu 的直播系統架構實踐

美國 視頻網站 直播系統架構 Hulu 是 2007 年在美國上市的在線視頻公司,提供會員制付費視頻服務,商業模式與國內的愛奇藝、優酷類似。Hulu 今年 5 月發布了最新的 OTT 電視直播應用——Hulu Live TV,目標是替代傳統的有線電視服務,和國內最近興起的直播應用,比如 YY,映

十年,水產寶與升鮮寶即將橫空出世,將正面與市面上的商業軟件競爭。用小米加步槍對洋槍洋炮。升鮮寶將為杭州生鮮配送企業服務,8年的生鮮電商行業沈澱。

不一致 img 管控 賺錢 很難 blog 生鮮電商 不知道 同時 一直堅守著.net開發陣營,一直致力於生鮮配送行業的信息化解決方案。用程序員本來的堅持,在這個行業中,默默的承受著,不斷優化流程。不斷的實踐。 生鮮配送企業的

“十年”酷客多智慧連鎖版小程序重磅來襲

服務商 mar 使用 系統輔助 images 總結 庫存 訂單 運用 眾位期盼已久的酷客多智慧連鎖正式上線,相信一直關註我們的合作夥伴或多或少都了解到了一些信息,那麽此次我們酷客多智慧連鎖究竟都有哪些功能呢?能為連鎖品牌企業運營帶來哪些助力,又該如何運用好我們的智慧連鎖呢,

【十年】我們能從阿里架構師的身上學到什麼?

前言 做技術的,一定不能放棄技術。在精進技術的同時完善其他方面的能力,十年如一日。不忘初心,方得始終。 正文 本文是看到阿里巴巴系統架構師黃勇的採訪記錄有感而發,如有侵權,請聯絡我。下面就一起來看看阿里架構師的十年架構路。 和大家介紹下我目前所從事的工

Peter Norvig:自學程式設計,十年

黃小非譯註:本文作者Peter Norvig目前任職於Google,其職位是研究主管(Director of  Research). Peter Norvig是享譽世界的電腦科學家和人工智慧專家。他是 AAAI  和  ACM 的會員,是業界內經典書籍《人工智慧:一

八年,重新定義 HBase——HBase 2.0&阿里雲 HBase 解讀

八年磨一劍1.1 HBase 的前世今生 關係型資料庫的發展已經經歷了 40 多年的歷史了,而 HBase 以及大資料這套東 西的歷史大概從 2006 年被認為是大資料的發起時期到現在,也就是 13 年左右 而已。那麼,為什麼會出現 HBase 以及 Hadoop 整體生態鏈的這些內容呢?這 是因為在

十年,霜刃未曾試!

如果使用 FreeLibrary解除安裝自身DLL的話會出現一個問題,在 FreeLibrary 之後,該 DLL 的地址空間就不再可用了,但這時 EIP 指標仍然會指向 FreeLibrary 的下面一句,於是程式就會崩潰。所幸,Win32 提供了另外的一個 API——F

十年,王堅自研的MaxCompute如何解決世界級算力難題

大資料時代,隨著企業資料規模的急劇增長,傳統軟體已無法承載,這也推動了大資料技術的發展,Google、AWS、微軟等矽谷巨頭紛紛投

三年,robot framework 自動化測試框架核心指南,真正講透robot framework自動化測試框架(筆者新書上架)。

開始 測試的 奮鬥 必須 href 關於 不足 自動 經驗 序 關於自動化測試的工具和框架其實有很多。自動化測試在測試IT行業中扮演著越來越重要的角色,不管是在傳統的IT行業還是高速發展的互聯網行業或是如今的大數據和大熱的人工智能領域,都離不開測試,也更加離不開自動化測試

Python基礎總結九天開始【pythonOS模組對目錄的操作、以及操作檔案】(新手可相互督促)

年薪20萬的夢想。。。         python對檔案、目錄能做什麼?或者說我們需要python替我們做什麼?最經常的操作就是對檔案的:開啟、關閉、讀取、寫入、修改、儲存等等對目錄的操作,無非就是:建立目錄、刪除目錄、更改目錄名字等等。我們先認識一下OS模組,os

Vue()ES6基礎

01-先了解ES6語法 1.宣告變數let和const <script type="javascript"> //es5宣告變數 var 先宣告,後賦值 //var a = 10; //console.log(a); //因變數提升 導致 1.var宣

從零開始學 Web ES6(三)ES6基礎語法

arr 方法 foreach reac 公眾 存在 lock 數組名 回調函數 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博

Vue+koa2開發款全棧小程序(1.課程介紹+2.ES6入門)

... index 定義變量 打包 npm tps 管理系統 中心 概述 1.課程介紹 1.課程概述 1.做什麽? Vue+koa2開發一款全棧小程序 2.哪些功能? 個人中心、圖書列表、圖書詳情、圖書評論、個人評論列表 3.技術棧 小程序、Vue.js、koa2、koa-

python 每日0000題➕PIL模組學習

前言 自己的程式設計能力太不足了,最近開始每日一練,望大佬勿噴,學習記錄下 正文 第 0000 題: 將你的 QQ 頭像(或者微博頭像)右上角加上紅色的數字,類似於微信未讀資訊數量那種提示效果。 類似於圖中效果 這道題我想到的做法就是利用PIL模組去做 當然我的電腦裡

3. 首頁模組搭建伺服器

上一節對歡迎模組進行了綜述(可參見 2. 歡迎模組 進行了解),接下來將從首頁模組開始詳細介紹: [首頁模組(一)之搭建伺服器] [首頁模組(二)之工具類] [首頁模組(三)之首頁] [首頁模組(四)之新聞詳情] [首頁模組(五)之Python學科]

前端模組化開發規範ES6

直接上程式碼啦! 匯入 import { getList } from './userService' 或者 import userService from './userService' 匯出 export default { userService }

每天點點vue框架開發 - vue-router路由進階(路由別名、跳轉、設定預設路由)

路由別名   在main.js中的路由中新增name來建立別名 const routes = [ {path:'/footer',name:footerLink,component:Footer} ]   在元件中的路由中通過

每天點點vue框架開發 - vue-router路由進階(路由別名、跳轉、設置默認路由)

跳轉 創建 mage 分享圖片 const oot ons dir info 路由別名 別名的作用:防止文件路徑泄露 使用之前顯示如下: 使用別名後就只會顯示到域名,後面的文件是不會顯示的,這就起到保護的作用了 在main.js中的路由中添加name來創建別

Vue + Spring Boot從零開始搭建個人網站( 專案前端Vue.js環境搭建

前言:         最近在考慮搭建個人網站,想了想決定採用前後端分離模式         前端使用Vue,負責接收資料         後端使用Spring Boot,負責提供前端需要的API         就這樣開啟了我邊學習邊實踐之旅 Vue環境搭建步驟:         1、安裝node.js