zoukankan      html  css  js  c++  java
  • webpack+vue学习记录

    Day one: 一个最简单的webpack项目

    我们新建一个TODO项目,初始化命令:

    npm init;
    

    安装npm,然后会有一些warn指示,我们根据指示安装项目所需要的依赖,请根据提示安装

    npm i css-loader
    

    然后创建src,新建一个app.vue,这是一个vue文件,内容很简单

    <template>
    <div id="text">
        {{text}}
    </div>
    </template>
    <script>
    export default {
        data(){
            return {
                text:'hello world'
            }
        }
    }
    </script>
    <style>
        #test{
            color:black;
        }
    </style>
    

    新建webpack.config.js

    const path = require('path')
    module.exports = {
        entry: path.join(__dirname,'src/index.js'),
        output:{
            filename: 'bundle.js',
            path: path.join(__dirname,'dist')
        }
    }
    

    包含入口文件main.js,和出口文件bundle.js;

    此时定义入口文件index.js,配置一个vue对象,将内容挂载上去

    import Vue from 'vue'
    import App from './app.vue'
    
    const root = document.createElement('div')
    document.body.appendChild(root)
    
    new Vue({
        render:(h) => h(App)
    }).$mount(root)   
    

    入口文件定义好后,我们可以在package.json中加一行脚本,指定在该项目中webpack打包,而不是全局打包

    "scripts": {
        "test": "echo "Error: no test specified" && exit 1",
        "build": "webpack --config webpack.config.js"  //这里
      }
    

    此时我们可以打包试试 npm run build

    哈哈,报错,大家看看报错

    ERROR in ./src/app.vue 1:0
    Module parse failed: Unexpected token (1:0)
    You may need an appropriate loader to handle this file type.
    

    我们需要安装一个loader区处理vue类型的文件,然后配合我学习的视屏里是这样配置的

    const path = require('path')
    module.exports = {
        entry: path.join(__dirname,'src/index.js'),
        output:{
            filename: 'bundle.js',
            path: path.join(__dirname,'dist')
        },
        module:{
            rules:[
                {
                    test: /.vue$/,
                    loader: 'vue-loader',
                }
            ]
        }
    }
    

    我试了之后还是不行,很鸡肋,不知道视频中的webpack是哪个版本,然后百度了一个,现在的版本是要加一个插件VueLoaderPlugin的,在查找问题的过程中自作主张加了一个严格模式的规定,然后,看

    'use strict'
    const path = require('path')
    const VueLoaderPlugin = require('vue-loader/lib/plugin')  //这里
    module.exports = {
        entry: path.join(__dirname,'src/index.js'),
        output:{
            filename: 'bundle.js',
            path: path.join(__dirname,'dist')
        },
        plugins:[   //这里
            new VueLoaderPlugin()
        ],
        module:{
            rules:[
                {
                    test: /.vue$/,
                    loader: 'vue-loader',
                }
            ]
        }
    }
    

    我本以为这样好了,但是,继续报错

    [vue-loader] vue-template-compiler must be installed as a peer dependency, or a compatible compiler implementation must be passed via options.
    

    很生气,在一开始的warn中,视频中是有这个依赖提示的,但是我没有就没安装,现在来了,总归是要装的

    npm i vue-template-compiler
    

    继续,烧香祈祷,呵呵

    ERROR in ./src/app.vue?vue&type=style&index=0&lang=css& 18:0
    Module parse failed: Unexpected token (18:0)
    You may need an appropriate loader to handle this file type.
    |
    |
    > .test{
    |     color:black;
    | }
    

    继续报错,保持微笑,这里提示的意思应该是样式需要loader来处理它,矫情,于是百度了一下,加了这个:

    'use strict'
    const path = require('path')
    const VueLoaderPlugin = require('vue-loader/lib/plugin')
    module.exports = {
        entry: path.join(__dirname,'src/index.js'),
        output:{
            filename: 'bundle.js',
            path: path.join(__dirname,'dist')
        },
        plugins:[
            new VueLoaderPlugin()
        ],
        module:{
            rules:[
                {
                    test: /.vue$/,
                    loader: 'vue-loader',
                },
                {
                    test: /.css$/,             //这里
                    use:['vue-style-loader','css-loader']
                }
            ]
        }
    }
    

    最后我终于成功了,看到一片绿的时候,简直想哭啊!!!
    呼呼

    最终就生成了一个dist/bundle.js文件啊,感觉自己好棒棒!!

    好,第一个课程完美,希望大家跟着视频学习的时候有耐心一点,因为老师和你的环境和用的版本毕竟不一样,仔细研究一下报错,耐心解决,感觉在这个过程里收获比较大。哈哈!

  • 相关阅读:
    Lotus iNotes 用户启用标识符保险库
    Domino NSD日志诊断/分析
    从 Domino 7.x 升级到 Domino 8.0.1 后服务器性能下降
    Domino服务器命令表
    源码:使用LotusScript发送mime格式邮件
    构架Domino CA中心之一
    如何在DNS中增加SPF记录
    构架Domino CA中心之二
    在Ubuntu 8.04上安装Domino R8.02
    内存陷阱 驯服C++中的野指针 沧海
  • 原文地址:https://www.cnblogs.com/tanghm/p/9832551.html
Copyright © 2011-2022 走看看