gulp+webpack+vue.js打造vue.js框架自動化
安裝Babel,Vue,Gulp,WebPack
Babel
npm install babel-core babel-loader babel-plugin-transform-runtime babel-preset-es2015 babel-runtime --save-dev
Vue
npm install vue-hot-reload-api vue-html-loader vue-loader vue-style-loader css-loader file-loader inject-loader template-html-loader url-loader --save-dev
Gulp
Gulp我用了sass 並不在vue中寫style..還是不太習慣 哈哈. 並且用gulp-livereload做服務端 而不用webpack自帶的
npm install gulp gulp-livereload gulp-sass gulp-webpack --save-dev
WebPack
npm install webpack
.babelrc
這個檔案很重要 如果不在專案根目錄新增這個資料夾會導致webpack loader的時候報錯
檔案內容為
{
"presets": ["es2015"],
"plugins": ["transform-runtime"]
}
意思就是轉es2015並且載入外掛
專案地址
專案目錄分佈
- 根目錄 -index.html gulpfile.js webpack.config.js -- build -css(用來放生成的CSS) images(靜態images) js(生成的js) -- dev -output.js(webpack entry主檔案) output.scss(sass主檔案) sass(sass模組資料夾) js(*.Vue資料夾)
WebPack編寫
``` /** * Created by soul on 2016/3/22. */ const webpack=require("webpack");
module.exports={ entry:"./dev/output.js", //手動處理依賴載入 externals:{ "jquery" : "jQuery", "Vue":"Vue" }, //這裡不指定檔案路徑是因為gulp.dest輸出已經指定了 output:{ filename:"main.js" }, module:{ loaders:[ {test:/.vue$/,loader:"vue-loader"}, {test:/.js$/,loader:"babel-loader"}, ], }, vue:{ loaders:{ js:"babel" } } } ```
Gulp編寫
``` /** * Created by soul on 2016/3/14. */ const gulp=require("gulp"); const sass=require("gulp-sass"); const webpack=require("gulp-webpack"); const livereload=require("gulp-livereload")
gulp.task("default",["sass:watch","es6:watch"]);
gulp.task("sass:watch",function(){ livereload.listen(); gulp.watch("./dev/**/*.scss",["sass:compile"]) //這裡監聽index.html檔案變動 gulp.watch("index.html",function(){gulp.src("index.html").pipe(livereload())}) }); gulp.task("sass:compile",function(){ gulp.src("./dev/output.scss") .pipe(sass.sync().on('error', sass.logError)) .pipe(gulp.dest('./build/css')) .pipe(livereload()) });
gulp.task("es6:watch",function(){ //監聽vue和js gulp.watch("./dev//.vue",["es6:compile"]) gulp.watch("./dev//.js",["es6:compile"]) });
gulp.task("es6:compile",function(){ gulp.src("./dev/output.js") //這裡使用webpack處理依賴 .pipe(webpack(require("./webpack.config.js"))) .pipe(gulp.dest("./build/js/")) .pipe(livereload()) }); ```
index.html引入js與css
``` <!DOCTYPE html> Title
```
output.js 檔案載入管理
``` import HeaderNav from "./js/header.vue"
new Vue({ el:"body", components:{ HeaderNav } }); ```
./js/header.vue編寫
```
``` 只需要返回一個物件即可~剩下的vue-loader會幫你處理好
注意點
這裡遇到的坑就是.babelrc檔案沒有建立 導致loader的時候報錯..剩下的參考vue的API即可
相關文章
- 利用tox打造自動自動化測試框架框架
- 如何利用tox打造自動自動化測試框架,看完就懂框架
- 打造心目中理想的自動化測試框架 (AppiumBooster)框架APP
- 自動化測試框架框架
- titans Selenium 自動化框架框架
- UI 自動化框架 yaml 大法UI框架YAML
- 自動化測試框架思路框架
- 自動化測試框架指南框架
- 自己動手寫Web自動化測試框架(6):自動化測試框架的規劃Web框架
- T框架介紹(自動化測試框架)框架
- 自動化測試框架比較框架
- 自動化測試框架介紹框架
- Selenium自動化測試框架框架
- 軟體測試自動化框架框架
- 介面自動化測試框架 HttpFPT框架HTTP
- 軟體測試框架——自動化測試框架框架
- 肖sir__po框架之ui自動化框架框架UI
- 測試開發之自動化篇-自動化測試框架設計框架
- web自動化測試框架-06 如何快速編寫自動化指令碼Web框架指令碼
- [android]android自動化測試十三之monkeyRunner自動化框架Android框架
- UI自動化測試框架Cypress初探UI框架
- 介面自動化(四):框架搭建(Python)框架Python
- Python 自動化測試框架unittestPython框架
- 介面自動化實戰之框架搭建框架
- 自動化測試QTP知識框架QT框架
- 自動化管理框架下的內容框架
- 自動化測試框架:擁抱Ruby框架
- 四.unittest介面自動化框架介紹框架
- 自動化測試框架的AW模式框架模式
- 自己動手寫Web自動化測試框架Web框架
- Aqua 專為自動化測試打造的IDEIDE
- Robot Framework自動化測試框架核心指南-如何做好自動化測試平臺框架的設計Framework框架
- 移動端 UI 自動化測試框架對比UI框架
- 【python介面自動化】初識unittest框架Python框架
- Jmeter+Ant+Jenkins介面自動化框架JMeterJenkins框架
- 淺談自動化測試框架開發框架
- 介面自動化測試框架搭建總結框架
- HamronyOS 自動化測試框架使用指南框架