美文网首页
webpack中使用vue

webpack中使用vue

作者: ___大鱼___ | 来源:发表于2018-11-20 17:55 被阅读15次
webpack.png
main.js
//  在webpack中尝试使用vue
//  在webpack中导入的vue包不完整, 只提供了runtime-only的方式, 并没有提供像网页的那种使用方式


// import Vue from '../node_modules/vue/dist/vue.js'
import Vue from 'vue'
// 1 导入.vue文件
import login from './login.vue'
// 默认, webpack无法打包.vue文件 需要安装相关的loader:
// npm i vue-loader vue-template-compiler -D


 var vm = new Vue({
     el: '#app',
     data: {
         msg1: [1, 23, 23, 32,]
     },
     render: c => c(login)
 });

login.vue

<template>
<div>
    <h1>这是登录组件</h1>
</div>

</template>

<script>


</script>


<style>


</style>

webpack.config.js

const path = require('path');

// 导入在内存中生成的HTML插件  只要是插件都一定要放在plugin插件中去
const htmlWebpackPlugin = require('html-webpack-plugin');

const VueLoaderPlugin =  require('vue-loader/lib/plugin');

// 这个配置文件, 其实就是一个js文件, 通过node 中的模块操作, 向外暴露了一个配置对象

module.exports = {

    // 在配置文件中, 需要手动的指定入口和出口
    entry: path.join(__dirname, './src/main.js'),  // 入口, 表示webpack要打包那个文件
    output: {
        path: path.join(__dirname, './dist'), // 指定打包好的文件, 放在那个目录中去
        filename: 'bundle.js', // 这里是指输出的文件名称
},
    mode: 'production',
    plugins: [
        new htmlWebpackPlugin({   //创建一个在内存中生成html插件
            template: path.join(__dirname, './src/index.html'),  // 指定模板页面, 将来会根据指定的页面路径, 去生成内存中的页面
            filename: 'index.html'  // 指定生成内存中的页面
        }),
        new VueLoaderPlugin()
    ],
    // resolve: {
    //   alias: {  // 修改vue 被导入时包的路径
    //       "vue$": "vue/dist/vue.js"
    //   }
    // },

    module: {  // 这个节点用于配置所有的第三方模块的匹配规则
        rules: [                                                            // test是正则 use是用哪个第三方模块来处理
            { test: /\.css$/, use: ['style-loader', 'css-loader'] },  // 配置处理 .css文件的第三方规则
            { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },   // 配置处理.less后缀的文件
            { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },  // 配置处理.scss后缀文件
            // limit限制图片大小 处理图片路径的loader ?& 传参  单位是byte 如果我们引用的图片大于或者等于给定的LIMIT的值
            // 则不会被转为base64字符串, 否则相反   [name].[ext]  之前叫什么名现在还叫什么名字 [hash:8]-前面用8位hash值
            { test: /\.jpg|png|gif|bmp|svg|jpeg$/, use: 'url-loader?limit=500&name=[hash:8]-[name].[ext]' },
            { test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader'},  // 处理字体文件的loader
            { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/},  // 用于处理ES6 的高级语法转化低级语法
            { test: /\.vue$/, use: 'vue-loader'}  // 处理.vue的loader
        ]
    },
    performance: {
    hints: "warning", // 枚举
    maxAssetSize: 30000000, // 整数类型(以字节为单位)
    maxEntrypointSize: 50000000, // 整数类型(以字节为单位)
    assetFilter: function(assetFilename) {
    // 提供资源文件名的断言函数
    return assetFilename.endsWith('.css') || assetFilename.endsWith('.js');

    }
},


};

index.html

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

</head>
<body>
    <div id="app">


    </div>



</body>
</html>

相关文章

网友评论

      本文标题:webpack中使用vue

      本文链接:https://www.haomeiwen.com/subject/beixqqtx.html