您的位置:首页 > 产品设计 > UI/UE

vue依赖webpack的环境配置(一)

2017-08-20 22:20 609 查看
创建项目

$ mkdir [project name]
$ cd [project name]
$ npm init


安装webpack、webpack-dev-server以及相关loader

# 安装webpack,webpack-dev-server
$ npm install webpack
$ npm install webpack-dev-server
# 为项目安装其他依赖
$ npm i webpack-merge css-loader style-loader file-loader url-loader babel-core babel-loader babel-plugin-transform-runtime babel-preset-es2015 babel-preset-stage-0 babel-runtime vue vue-loader vue-html-loader vue-style-loader vue-hot-reload-api -D


webpack-merge:开发环境和生产环节的webpaak配置文件的配置合并

css-loader:编译写入css

style-loader:把编译后的css整合进html

file-loader:编译写入文件,默认情况下生成文件的文件名是文件名与MD5哈希值的组合

vue:vue主程序

vue-laoder:编译写入.vue文件

vue-html-loader:编译vue的template部分

vue-style-loader:编译vue的样式部分

vue-hot-reload-api:webpack对vue实现热替换

babel-core:ES2015编译核心

babel-loader:编译写入ES2015文档

babel-preset-es2015:ES2015语法

babel-preset-stage-0:开启测试功能

babel-runtime:babel执行环境

更多安装方式和loader解释参考文档https://doc.webpack-china.org/guides/getting-started/

新建index.html

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>

<div id="app">{{message}}</div>
<!--“源”代码是用于书写和编辑的代码。“分发”代码是构建过程产生的代码最小化和优化后的“输出”目录,最终将在浏览器中加载:-->
<!--bundle是分发代码-->
<script src="dist/bundle.js"></script>
</body>
</html>


创建/src/mian.js

新建src文件夹,然后在里面创建main.js

//js源文件
import Vue from "vue";
new Vue({
el:'#app',
components:{
message:'test'
}
});


配置webpack.configure.js

大多数项目会需要很复杂的设置,这就是为什么 webpack 要支持配置文件。这比在终端(terminal)中输入大量命令要高效的多,所以让我们创建一个取代以上使用 CLI 选项方式的配置文件:

var path=require('path');
module.exports={
//定义输入文件
entry:'./src/main.js',
// 输出文件
output:{
// 文件名
filename:'bundle.js',
// 文件地址
path:path.resolve(__dirname,'dist')
},
module: {
rules: [
//vue转化
{
test:/\.vue$/,
loader:'vue-loader'
},
// css转化
{
test: /\.css$/,
use: [
'style-loader',
'css-loader'
]
},
// 图片转化
{
test: /\.(png|svg|jpg|gif)$/,
use: [
'file-loader'
]
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: [
'file-loader'
]
},
{
test: /\.(csv|tsv)$/,
use: [
'csv-loader'
]
},
{
test: /\.xml$/,
use: [
'xml-loader'
]
}
]
},
resolve: {
// Vue v2.x之后NPM Package默认设置只会生成runtime-only 版本,若要使用standalone功能則需如下设置

// 否则会报错:Failed to mount component: template or render function not defined.
alias: {
vue: 'vue/dist/vue.js'
}
// extensions: ['', '.js', '.vue']
}
};


运行

我们在终端下输入命令 webpack

打开浏览器可以看到效果

进一步实现vue的组件化思想

修改index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<h1>wewew</h1>
<!--hello模块-->
<hello></hello>
</div>
<!--<div id="app">{{message}}</div>-->
<script src="dist/bundle.js"></script>
</body>
</html>


新建hello.vue

<template>
<strong>{{vueMsg}}</strong>
</template>
<script>
module.exports = {
data() {
return {vueMsg:'Vue hello world'}
}
}
</script>
<style scoped>
strong{
background-color: #f00;
}
</style>


在main.js中加入对hello.js的引入

import helloVue from './../view/hello.vue';
import Vue from "vue";
// var helloVue=require('./../view/hello.vue')
new Vue({
el:'#app',
components:{
//hello
hello:helloVue
}
});


再次webpack一下,我们就可以在浏览器上看到效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: