用webpack2.0构建vue2.0单文件组件超级详细精简实例

npm init -y 初始化项目  //-y 为自动生成package.json,如果需要自行配置,去掉-y即可

安装各种依赖项

npm install --save vue 安装vue2.0

npm install --save-dev webpack webpack-dev-server 安装webpack以及webpack测试服务器 //默认安装最新版2.x版本

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:#000000;  color:#fff;
    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 全局安装webpack,以便使用webpack命令

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

最终项目目录如图所示

在根目录下新建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>

页面如图所示

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

npm install -g webpack-dev-server 全局安装webpack-dev-server,以便使用webpack-dev-server命令

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

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

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

转载自 https://segmentfault.com/a/1190000008166081 ,感谢博主如此详细精简的实例!

时间: 2024-10-25 13:56:44

用webpack2.0构建vue2.0单文件组件超级详细精简实例的相关文章

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

初始化环境 npm init -y 初始化项目 安装各种依赖项 npm install --save vue 安装vue2.0 npm install --save-dev [email protected]^2.1.0-beta.25 [email protected]^2.1.0-beta.9 安装webpack以及webpack测试服务器,默认安装是1.0版本的,所以必须指定版本号 npm install --save-dev babel-core babel-loader babel-p

Vuejs - 单文件组件

为什么需要单文件组件 在之前的实例中,我们都是通过 Vue.component 或者 components 属性的方式来定义组件,这种方式在很多中小规模的项目中还好,但在复杂的项目中,下面这些缺点就非常明显了: 字符串模板:缺乏高亮,书写麻烦,特别是 HTML 多行的时候,虽然可以将模板写在 html 文件中,但是侵入性太强,不利于组件解耦分离.不支持CSS:意味着当 HTML 和 JavaScript 组件化时,CSS明显被遗漏了没有构建步骤:限制只能使用 HTML 和 ES5 JavaScr

vue单文件组件的构建

在很多Vue项目中,我们使用 Vue.component 来定义全局组件,这种方式在很多中小规模的项目中运作的很好. 但当在更复杂的项目中,就有了很大的弊端. 我们就可以用文件扩展名 .vue的单文件组件来解决这些问题. 我们建议你参考 webpack-simple ,只要遵循指示,你就能很快的运行一个用到 .vue 组件 . 这是vue-cli的项目模板. npm install -g vue-cli vue init webpack-simple my-project cd my-proje

webpack入坑之旅(五)加载vue单文件组件

这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不是开始的开始 webpack入坑之旅(二)loader入门 webpack入坑之旅(三)webpack.config入门 webpack入坑之旅(四)扬帆起航 webpack入坑之旅(五)加载vue单文件组件 webpack入坑之旅(六)配合vue-router实现SPA 需要什么? 在经过前面的四

Vue单文件组件基础模板

背景 相信大家在使用Vue开发项目时,基本都是以单文件组件的形式开发组件的,这种方式好处多多: 1.代码集中,便于开发.管理和维护 2.可复用性高,直接将vue文件拷贝到新项目中 我暂时就想到这两点,童鞋们可以在评论里帮我补充:因为有这么多优点,所以决定有必要将vue组件的常用配置项提炼出来,形成一个组件模板,方便日后项目开发复用 <template> <div> <h1>{{title}}</h1> <ChildComponents></

Vue-Router路由Vue-CLI脚手架和模块化开发 之 在单文件组件项目中定义数据、方法和组件之间的相互引用

定义数据 根据上一篇博文配置项目的结构的基础上继续进行优化: 在app.vue中的导出模块/组件部分设置其属性: export default{//导出模块/组件 data(){ return{ name:'perfect', count:0 } }, 在一个template标签中进行调用: <template> <div> <h2> 欢迎来到perfect*的博客园!!!</h2> <h3>{{name}}</h3> </te

华视身份证读卡器获取uid号vue单文件组件版本

<template> <div id="app" ref="app"> <object ref="CertCtl" classid="clsid:F48AE9BC-809E-423c-81E8-FE27F1C1A981" id="CertCtl" name="CVR_IDCard" width="0" height="0&quo

单文件组件使用

单文件组件使用 组件有两种:普通组件.单文件组件 普通组件的缺点: html代码是作为js的字符串进行编写,所以组装和开发的时候不易理解,而且没有高亮效果. 普通组件用在小项目中非常合适,但是复杂的大项目中,如果把更多的组件放在html文件中,那么维护成本就会变得非常昂贵. 普通组件只是整合了js和html,但是css代码被剥离出去了.使用的时候的时候不好处理. 将一个组件相关的html结构,css样式,以及交互的JavaScript代码从html文件中剥离出来,合成一个文件,这种文件就是单文件

Vue 定义组件模板的七种方式(一般用单文件组件更好)

在 Vue 中定义一个组件模板,至少有七种不同的方式(或许还有其它我不知道的方式): 字符串 模板字面量 x-template 内联模板 render 函数 JSF 单文件组件 在这篇文章中,我将通过示例介绍每个选项,并探讨利弊.以便你知道在任何特定情况下最适合的是哪一种. 1. 字符串 默认情况下,模板会被定义为一个字符串.我想我们的观点会达成一致:字符串中的模板是非常难以理解的.除了广泛的浏览器支持之外,这种方法没有太多用处. Vue.component('my-checkbox', { t