webpack运行配置(2)

webpack的使用

webpack-dev-server 这个包

    webpack-dev-server是用来干嘛的?
    前端程序员在开发过程中,想要做到改变一个文件的时候,实现自动利用webpack中的相关loader进行打包和自动刷新浏览器的功能

    步骤:
    1、由于webpack-dev-server 是依赖于 webpack的,所以要
        npm install webpack-dev-server webpack --save-dev

        注意点:我们现在使用的是webpack1
        在当前的学习目录结构中,由于在webpack.config.js中使用
        babel:{
         presets: ['es2015'],  
         plugins: ['transform-runtime']  //这句代码就是为了解决打包.vue文件不报错
    }

    那么我们得使用webpack1
    "webpack": "^1.14.0",
    "webpack-dev-server": "^1.16.2"
   
    但是要在package.json中的scripts中进行webpack-dev-server指令的配置

    webpack-dev-server 的使用指令
    参数:
    1、 --inline : 作用是能够保证当代码有改变的时候保证重新刷新浏览器
    2、 --hot :可以热刷新
    3、 --open:执行完webpack-dev-server开启服务器以后,自动打开浏览器
    4、 --port 4009  指定webpack-dev-server的监听端口
    

    利用webpack-dev-server去实现网站的托管功能的指令写法:
    webpack-dev-server --inline --hot --open --port 4009

    为了简化这种写法,我们就可以将其放到 package.json中的scripts
    "scripts": {   
    "dev":"webpack-dev-server --inline --hot --open --port 4009"
    }

    利用webpack-dev-server去实现网站的托管功能的指令写法可以简化成:
    npm run dev


    3、安装一个插件
      npm i html-webpack-plugin --save-dev
      在webpack.config.js中配置好这个html-webpack-plugin插件

    总结:
    1、npm webpack@1.14.0 webpack-dev-server@1.16.2 html-webpack-plugin --save-dev
    2、在package.json中的script中配置
         "scripts": {   
        "dev":"webpack-dev-server --inline --hot --open --port 4009"
        }
    3、在webpack.config.js中配置
        // 导入html-webpack-plugin包
        var HtmlWP =  require('html-webpack-plugin');

        plugins:[
        new HtmlWP({
          title: 'index',  //生成的页面标题
          filename: 'index.html', //webpack-dev-server在内存中生成的文件名称,自动将build注入到这个页面底部,才能实现自动刷新功能
          template: 'index1.html' //根据index1.html这个模板来生成(这个文件请你自己生成)
        })
    ]

webpack打包 .vue这种文件

    .vue文件其实就是我们vue中的组件页面
    .vue组件页面的写法结构:
    1、<template><div class="tmpl"></div>由于是vue2.0 所以这个里面一定要放一个根元素,可以放vue的指令 v-</template>

    2、<script> export default{data:{}} -> new Vue({data:{}}) 就是导出一个 Vue的实例  </script>

    3、<style></style>  中的样式是全局的
        <style scoped></style> 中的样式是当前组件的

    如何将.vue中的内容解析编译并且展示在浏览器中?
    解决方案步骤:
    1、安装 vue-loader ,并且要安装 vue 包
        npm install vue-loader --save-dev
        npm install vue  --save

    2、在main.js中编写解析.vue的代码
        // 解析.vue组件页面的代码

        // 1.0 导入vue这个包
        import Vue from 'vue';

        // 2.0 导入 App.vue文件
        import App from './App.vue';

        // 3.0 将App中的内容编译解析出来替换index.html中的<div id="app"></div>
        new Vue({
            el:'#app',
            // render:function(create){create(App);}  es5语法
            render:create=>create(App) //es6语法
        });

    3、在webpack.config.js中配置 .vue的对应的vue-loader

    注意点:想要编译成功.vue文件必须安装vue-template-compiler

     4、npm i vue-template-compiler --save-dev
    

总结vue中常用的es6语法

    1、对象的写法
        es5中对象: {add:add,substrict:substrict}
        es6中对象: {add,substrict}

    2、在对象中的方法的写法
        es5中对象: {add:function(){},substrict:function(){}}
        es6中对象: {add(){},substrict(){}}
    
    3、对象的导出写法
     calc.js

     es5两种形式:
     1、module.exports = fucntion (){};
     2、exprots.add =  fucntion (){};

    es6中写法:
    1、export default{
        add(){}
    }
    2、export fucntion add(){} 相当于 将add方法当做一个属性挂在到exports对象


    4、对象的导入
    es5: var add  = require('./calc.js');
    es6:
    如果导出的是:export default{ add(){}}
    那么可以通过  import obj from './calc.js'

    如果导出的是:
    export fucntion add(){} 
    export fucntion substrict(){} 
    export const PI=3.14

    那么可以通过按需加载 import {add,substrict,PI} from './calc.js'

    5、es6中的箭头函数的写法
    箭头的演变过程:
    //需求:利用函数实现倒序排列
    [2,1,3].sort(function(x,y){return y - x;});

    //用箭头函数实现 =>读 goes to
    [2,1,3].sort((x,y)=>{return y - x;});
    [2,1,3].sort((x,y)=> {x++;y++; y - x;});
    [2,1,3].forEach(x=> {console.log(x)});

在webpack中使用vue-router

    步骤:
    1、安装vue-router  npm i vue-router --save
    2、按照vue-router的路由写法步骤编写路由规则代码(mian.js)
        编写的代码文件是webpack打包的入口文件

上午内容的总结

    1、webpack-dev-server
        注意点:一定配合 webpack-html-plugin 这个模块来自动在内存中生成一个index.html页面,同时将bulid.js注入到
        这个页面的最下方,才能实现自动刷新功能

        webpack-dev-server 指令放到了 pacage.json中的scripts中

        参数:
        --inline : 为了实现能够自动刷新功能
        --hot   : 热加载
        --open :自动将index.html页面在浏览器中打开
        --port 端口号  ,表示服务器监听的端口


    2、利用vue-loader去解析 .vue组件页面
        注意点: vue-loader一定要配合 vue-template-complier 先解析编译.vue文件

        要能够将App.vue组件解析并且显示在浏览器中,要在webpack的入口文件main.js中写入:
        import Vue from 'vue';
        import App from './App.vue';
        new Vue({
            el:'#app',
            render:c=>c(App)
            })

        在我们的index1.html这个模板中,增加一个
        <div id="app"></div>


    3、总结了es6语法

    4、在webpack项目结构中集成了vue-router模块
        在webpack的入口文件main.js中写入:
      1、  import vueRoter from 'vue-router';
       2、 Vue.use(vueRoter);
       3、 var vurRouterObj = new vueRoter({
            routes:[设置路由规则]
            });

      4、   new Vue({
            el:'#app',
            router:vurRouterObj, //使得路由对象生效
            render:c=>c(App)
            })

    5、在App.vue中
        <router-link to='/login'>login</router-link>

        <router-view></router-view>

项目中用到的第三方组件

  • mint-ui (vue的组件库)
    官网:http://mint-ui.github.io/#!/zh-cn

    使用步骤:
    1、安装mint-ui
        npm install mint-ui --save

    2、在main.js中导入mint-ui的样式表 mint-ui\lib\style.css  

    3、import mintUI  from 'mint-ui'
       Vue.use(mintUI);

    4、在你的相关.vue组件页面上就可以使用了
        如果:使用的是一个样式,则直接使用mint-ui提供的标签即可
        例如:<mt-button type="danger" size="larger"></mt-button>

        如果:使用的是在js中要执行的对象,就必须通过 import 导入
        例如:MessageBox ,其中名字一定是要按照文档说明的来命名,修改了以后不能执行

        import {MessageBox} from 'mint-ui'
        MessageBox('标题','内容')


    和mint-ui相同功能的一个组件vux
    官网:https://vuxjs.gitbooks.io/vux/content/about/before.html

    vue1.0升级到vue2.0升级文档:https://vux.li/?x-page=github_readme#/zh-CN/upgrade-to-2

    在线演示:https://vux.li/demos/v2/?x-page=v2-doc-home#/

  • mui (并不属于vue的组件,而是一个移动端的css的功能库)
    注意:mui不是一个vue的组件,但是也可以在vue中使用

    步骤:
    1、在mian.js中导入mui这个框架的 mui.css和icons-extra.css
    2、按照mui的demo中的每种组件,去按需使用

vue官方提供的 脚手架工具vue-cli补充

   安装网址: https://cn.vuejs.org/v2/guide/installation.html

    安装步骤:

    # 全局安装 vue-cli
    $ npm install --global vue-cli
    # 创建一个基于 webpack 模板的新项目
    $ vue init webpack my-project
    # 安装依赖,走你
    $ cd my-project
    $ npm install
    $ npm run dev

公司的开发流程

    软件公司(IT企业,互联网)组织架构
    0、需求部(产品部)
        - 提供这个系统要开发成什么样子
        - 提供一个需求文档(.doc)的
        - 出系统的交互稿
        - UI部门根据交互稿的原型设计出UI设计稿(.psd文件)

    1、开发部 - 总监
        - 前端部门 - 部门经理 -项目经理+ 技术经理
            + web前端部门(Html5部门)
            + iOS部门 
            + Android部门
            + 前端部门的开发者去调用后台部门开发api
            + 前端开发人员在读不懂后台开发人员提供的api的情况下,可以及时沟通

        - 后台部门
            + java,php,.Net,NodeJS这个开发
            + 后台部门开api给前端部门的开发者去调用

 
    3、测试部门

    4、运维部门
        
    5、运营部门
        

    开发流程:
    1、出需求-> 出交互设计稿->UI设计稿(.psd)
                            ->前端部门做系统的前端框架设计
                            ->后台部门做系统的数据库设计+后台相关系统的设计+api的设计

    当所有部门的工作完成以后,开启联调(联合调试)

    

将框架源码利用git托管

    1、gighub.com  
    2、git.oschina.net 码云 (国内的快)
 

实现项目的第一个页面 首页

  • 轮播图
  • 导航区
  • 头和尾

webpack中使用 vue-resource

    步骤:
    1、安装vue-resource
       npm i vue-resource --save

    2、将vue-resource绑定到vue上

git命令的总结

    git clone :将git网站上的具体的一个仓库中的代码下载下来
    git status -s: 查看本地的文件管理状态  -s:看它的简要信息
    git add . :将本地的所有文件加入到.git 中
    git commit -m '注释' 提交文件到本地 .git
    git remote add 远程仓库的别名 仓库的路径(htts)
    git remote :查看本地的所有别名列表
    git push 远程仓库的别名 master :将文件提交给远程仓库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容