• 使用ES6+Vue+webpack+gulp构建新一代Web应用


    1.推荐学习网站:Vue.js中国

    2.Demo环境搭建:

    2.1环境配置

    安装nodejs环境,具体内容可以百度;

    新建一个文件夹:

    mkdir VUE-ES6-WebPack
    

      

    全局安装gulp:

    npm install gulp -g
    

      

    全局安装webpack: 

    npm install webpack -g
    

    2.2webpack使用  

    在VUE-ES6-WebPack目录先新建一个webpack.config.js文件,然而,webpack是啥?

    它本身是一个打包工具,可以把js、css、image打包成一个或者多个js文件,并且可以支持各种loader作为插件对不同类型的文件做转换处理。

    实际上webpack就是通过插件vue-loader在加载vue类型的文件时做格式转换,把vue类型文件翻译为浏览器可以识别的js文件。粘贴以下代码:

     1 module.exports = {
     2   // 这是一个入口文件
     3   entry: './resource/js/main.js',
     4   // 编译后的文件路径
     5   output: {
     6     //`dist`文件夹
     7     path: './resource/dist',
     8     // 文件 `build.js` 即 dist/build.js
     9     filename: 'build.js'
    10   },
    11   module: {
    12     loaders: [
    13       {
    14         //处理ES6语法
    15         test: /.js$/,
    16         //loader babel 
    17         loader: 'babel',
    18         exclude: /node_modules/
    19       },
    20       {
    21        //处理.vue文件
    22         test: /.vue$/,
    23         loader: 'vue'
    24       }
    25     ]
    26   },
    27   vue: {
    28     loaders: {
    29       js: 'babel'
    30     }
    31   }
    32 }    

    再新建一个package.json文件用于管理依赖:

     1 {
     2   "name": "test",
     3   "version": "1.0.0",
     4   "description": "",
     5   "main": "main.js",
     6   "scripts": {
     7     "test": "echo "Error: no test specified" && exit 1"
     8   },
     9   "author": "MonkeyWang",
    10   "license": "ISC",
    11   "dependencies": {
    12     "babel-core": "^6.1.2",
    13     "babel-loader": "^6.1.0",
    14     "babel-plugin-transform-runtime": "^6.1.2",
    15     "babel-preset-es2015": "^6.1.2",
    16     "babel-preset-stage-0": "^6.1.2",
    17     "babel-runtime": "^5.8.0",
    18     "css-loader": "^0.23.0",
    19     "gulp": "^3.9.1",
    20     "jade-loader": "^0.8.0",
    21     "style-loader": "^0.13.0",
    22     "stylus": "^0.54.5",
    23     "stylus-loader": "^2.3.1",
    24     "template-html-loader": "0.0.3",
    25     "then-jade": "^2.4.3",
    26     "vue": "^2.1.0",
    27     "vue-hot-reload-api": "^1.2.0",
    28     "vue-html-loader": "^1.2.3",
    29     "vue-loader": "^7.3.0",
    30     "webpack": "^1.13.3"
    31   }
    32 }

    新建gulpfile.js:

     1 var webpackConfig = require('./webpack.config.js');
     2 var gulp = require('gulp');
     3 var webpack = require("webpack");
     4 gulp.task("webpack", function(callback) {
     5   var myConfig = Object.create(webpackConfig);
     6   webpack(myConfig, function(err, stats) {
     7       callback();
     8     });
     9 });
    10 gulp.task('watchVue',function(){
    11   gulp.watch(['resource/js/**/*.vue','resource/js/**/*.js'], ['webpack']);
    12 });

    安装依赖:

    npm install
    

    通过webpack.config.js入口配置可以知道 我们需要新建入口文件,项目目录可以参考:

    新建main.js:

    import是ES6的模块语法。这里为了更多的体现Vue的功能,采用了vue的单文件组件,这里定义了一个App组件:

     1 /**
     2  * Created by monkeywang.
     3  */
     4 import Vue from '../../node_modules/vue/dist/vue'
     5 import App from './componets/app.vue'
     6 
     7 new Vue({
     8   el: '#app',
     9   data: {
    10     message: "Hello Vue"
    11   },
    12   components: { App }
    13 });

    新建app.vue组件:

     1 <template>
     2   <div class="message">{{msg}}</div>
     3 </template>
     4 
     5 <script>
     6 export default {
     7   data () {
     8     return {
     9       msg: 'Hello Monkey Wang'
    10     }
    11   }
    12 }
    13 </script>
    14 
    15 <style lang="stylus" rel="stylesheet/stylus"> 
    16 .message
    17   color blue
    18 </style>

    当然<template></template>也可以使用jade模板引擎

     1 <template lang="jade">
     2 .message{{msg}}
     3 </template>
     4 
     5 <script>
     6 export default {
     7   data () {
     8     return {
     9       msg: 'Hello Monkey Wang'
    10     }
    11   }
    12 }
    13 </script>
    14 
    15 <style lang="stylus" rel="stylesheet/stylus">
    16 .message
    17   color blue
    18 </style>

    非常大的一个亮点!一个vue文件,内部js、css、html就都齐了,可以作为一个完整的、自包含的组件了。非常有趣的、我个人极为欣赏的web components就在此处了。

    vue文件内的语法,当然不是浏览器所可以支持的,浏览器不认识它!魔术在于webpack+vue-loader+babel 。

    webpack加载vue文件首先调用vue-loader,vue-loader会调用babel转换ES6代码为ES5代码,把css和html作为模块也转换为客户端js代码。这些js代码浏览器就可以识别了。

    编译Vue:

    gulp webpack
    

    监听文件变动:

    gulp watchVue
    

    一切就绪,准备开始你的Vue.js和Es6的开发体验吧!  

      

      

  • 相关阅读:
    使用MySQL Workbench建立数据库,建立新的表,向表中添加数据
    IntelliJ IDEA15开发时设置中java complier 的问题
    IntelliJ 15 unmapped spring configuration files found
    Redis 的性能
    SSH框架
    jquery插件模版
    cygwin,在win中开发linux程序
    MinGw与CyGwin
    升级到tomcat8时Artifact SpringMvcDemo:war exploded: Server is not connected. Deploy is not
    Socket连接超时(转)
  • 原文地址:https://www.cnblogs.com/tiedaweishao/p/6094583.html
Copyright © 2020-2023  润新知