基于Webpack进行Vue开发

使用Vue-loader进行打包,将组件文件命名成vue结尾的文件

1.安装插件

  • vue-loader

  • vue-template-compiler

  • "babel-loader": "^7.1.5"

  • vue-style-loader

  • "babel-core"

  • babel-preset-es2015

    npm i -D

参考 https://vue-loader.vuejs.org/zh/guide/#vue-cli

2.webpack中配置插件

  • 使用VueLoadPlugin 插件

  • 定制loader规则

  • 引用插件

//webpack需要xue插件
const VueLoaderPlugin = require('vue-loader/lib/plugin')
//定制规则和引用插件
    module:{
        rules:[
            {
                test:/\.css$/,
                use:[
                {loader:'vue-style-loader'},
                {loader:'css-loader'}
                ]
            },
            {test:/\.(jpg|png|gif|jpeg)$/,use: 'url-loader?limit=102400&name=[name].[ext]'},
            {test:/\.vue$/,use:'vue-loader'},
            {test:/\.js$/,use:'babel-loader'}
        ]
    },
    plugins:[
        new VueLoaderPlugin()
    ],

3.组件文件格式

  • template 标签内部放置模板

  • scripte 标签内部进行Vue组件的定义

  • stytle 标签内进行样式的定义

    》》》》在定义样式后报错了《《《《

    RROR in /var/www/html/node/VueTest/node_modules/vue-style-loader/lib/listToStyles.js
    Module build failed (from /var/www/html/node/VueTest/node_modules/babel-loader/lib/index.js):
    ReferenceError: Unknown plugin "transform-es2015-modules-commonjs" specified in "/var/www/html/node/VueTest/node_modules/vue-style-loader/.babelrc" at 0, attempted to resolve relative to "/var/www/html/node/VueTest/node_modules/vue-style-loader"

    原来是少了一个包 babel-preset-es2015

  • 定义好的组件文件

<template>
    <p>{{name}}</p>
</template>

<script>
    export default { //这里通过export default 进行导出
        data() {
            return {
                name: "111"
            }
        }
    }
</script>

<style>
p{
        color: red;
    }

</style>
  • 在入口文件中使用组件文件

    //Vue 入口文件
    import Vue from 'vue'
    
    import Component22  from './index.vue'
    // 将html 页面中的入口标签替换
    var template=`<div> 
    <Component22></Component22>
    </div>`
    var app=new Vue({
        el:"#app",
        template:template,
        components:{ //挂载组件
            Component22
        }
    })
  • export default 与export

    在Vue组件中一般使用export default {} 进行导出;但是也可以使用export var 变量名='' 进行导出

    导出的变量使用import进行引用

    import Component22, {title as title1} from './index.vue'

    export default导出的对象在接收时,可以取任意名字,而export var 变量名导出的对象则必须取一样的名字,但是可以使用as选项将导出的名字进行修改

Last updated