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

来源:互联网 发布:js删除对象元素 编辑:程序博客网 时间:2024/05/20 13:04

创建项目

$ 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一下,我们就可以在浏览器上看到效果

原创粉丝点击