详解用webpack2.0构建vue2.0超详细精简版


Posted in Javascript onApril 05, 2017

npm init -y 初始化项目

安装各种依赖项

npm install --save vue 安装vue2.0

npm install --save-dev webpack@^2.1.0-beta.25 webpack-dev-server@^2.1.0-beta.9 安装webpack以及webpack测试服务器,默认安装是1.0版本的,所以必须指定版本号

npm install --save-dev babel-core babel-loader babel-preset-es2015 安装babel,一般的浏览器是不认识es6语法的,babel的作用是将es6的语法编译成浏览器认识的语法

npm install --save-dev vue-loader vue-template-compiler 用来解析vue的组件,.vue后缀的文件

npm install --save-dev css-loader file-loader 用来解析css

编写页面

新建目录src,里面新建App.vue

<!-- 简单写个title和一个循环 -->
<template>
  <div id="example">
    <h1>{{ msg }}</h1>
    <ul>
      <li v-for="n in 5">{{ n }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data () {
    return {
      msg: 'Hello World!'
    }
  }
}
</script>

<style scoped>
#example {
  background: red;
  height: 100vh;
}
</style>

在src目录下新建main.js

/* 引入vue和主页 */
import Vue from 'vue'
import App from './App.vue'

/* 实例化一个vue */
new Vue({
 el: '#app',
 render: h => h(App)
})

配置webpack

在根目录下新建webpack.config.js

/* 引入操作路径模块和webpack */
var path = require('path');
var webpack = require('webpack');

module.exports = {
  /* 输入文件 */
  entry: './src/main.js',
  output: {
    /* 输出目录,没有则新建 */
    path: path.resolve(__dirname, './dist'),
    /* 静态目录,可以直接从这里取文件 */
    publicPath: '/dist/',
    /* 文件名 */
    filename: 'build.js'
  },
  module: {
    rules: [
      /* 用来解析vue后缀的文件 */
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      },
      /* 用babel来解析js文件并把es6的语法转换成浏览器认识的语法 */
      {
        test: /\.js$/,
        loader: 'babel-loader',
        /* 排除模块安装目录的文件 */
        exclude: /node_modules/
      }
    ]
  }
}

打包项目

npm install -g webpack@^2.1.0-beta.25 全局安装webpack,以便使用webpack命令

webpack 用webpack命令打包项目,这是目录下会多出一个dist文件夹,查看里面会有build.js,发觉里面的es6语法已经被转化了

最终项目目录如图所示

详解用webpack2.0构建vue2.0超详细精简版

在根目录下新建index.html,引入build.js

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<title>vue-webpack</title>
</head>
<body>
  <section id="app"></section>
  <script src="./dist/build.js"></script>
</body>
</html>

页面如图所示

详解用webpack2.0构建vue2.0超详细精简版

这样就算打包完成了,但是每修改一次都要重新打包这样显然没有任何效率,于是需要线上的热重载

npm install -g webpack-dev-server@^2.1.0-beta.9 全局安装webpack-dev-server,以便使用webpack-dev-server命令

webpack-dev-server 等待程序运行完毕

在浏览器输入http://localhost:8080/查看页面

这时修改页面的代码,不用刷新浏览器直接更改

详解用webpack2.0构建vue2.0超详细精简版

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript this调用规则说明
Mar 08 Javascript
JS编程小常识很有用
Nov 26 Javascript
JavaScript中如何通过arguments对象实现对象的重载
May 12 Javascript
js手机号批量滚动抽奖实现代码
Apr 17 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
js中toString()和String()区别详解
Mar 23 Javascript
react-router实现按需加载
May 09 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
Jan 28 jQuery
JQuery中queue方法用法示例
Jan 31 jQuery
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
Apr 19 Javascript
JS为什么说async/await是generator的语法糖详解
Jul 11 Javascript
vue实现信息管理系统
May 30 Javascript
关于vuex的学习实践笔记
Apr 05 #Javascript
详解基于webpack和vue.js搭建开发环境
Apr 05 #Javascript
ionic2打包android时gradle无法下载的解决方法
Apr 05 #Javascript
使用gulp搭建本地服务器并实现模拟ajax
Apr 05 #Javascript
Vue.js render方法使用详解
Apr 05 #Javascript
self.attachevent is not a function的解决方法
Apr 04 #Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 #Javascript
You might like
初识ThinkPHP控制器
2016/04/07 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
Vue精简版风格概述
2018/01/30 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python写的英文字符大小写转换代码示例
2015/03/06 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
户籍证明的格式
2014/01/13 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
消防安全承诺书
2014/05/22 职场文书
运动员获奖感言
2014/08/15 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
消费者投诉书范文
2015/07/02 职场文书
三十年同学聚会感言
2015/07/30 职场文书