【Issues-Webpack-N3】vue-loader没有将tempate内容打包进去

vue文件里面的template没有被打包进模板文件中

/*
  vue loader
*/
var ExtractTextPlugin = require('extract-text-webpack-plugin');

var extract = (loader) => {
    let loaders = [ 'css-loader' ];
    if (loader && loaders.indexOf(loader) === -1) {
        loaders.push(loader);
    }
    return ExtractTextPlugin.extract({
        fallback: 'vue-style-loader',
        use: loaders
    });
};

module.exports = {
    test: /\.vue$/,
    use: [
        {
            loader: 'vue-loader',
            options: {
                loaders: {
                    css: extract([
                        'css-loader'
                    ]),
                    stylus: extract([
                        'stylus-loader'
                    ]),
                    scss: extract([
                        'sass-loader'
                    ]),
                    sass: extract([
                        {
                            loader: 'sass-loader',
                            query: {
                                indentedSyntax: true
                            }
                        }
                    ]),

                    html: 'vue-html-loader',

                    js: [
                        {
                            loader: 'babel-loader',
                            options: {
                                presets: ['env'],
                                comments: false
                            }
                        }
                    ]
                },

                // 会在默认的Loaders 之后执行
                // postLoaders: {
                //     html: 'babel-loader'
                // }
            }
        }
    ]
};

经过网上找答案最终没有找到准确的,总结答案分为以下几种

  1. 没有指定 html 加载器
    html: 'vue-html-loader'
    结果没卵用

  2. 没有使用 js loader
    这个更是不着边

最后在这个链接下找到提示:

template没有被打包

其中有两个答案:

  1. 意思没用对路由(还没用到路由这块,因此并不是我的问题症结所在)
  2. 让写个mounted测试组件有没有被加载

提示就出现在第二个回答上

那么来看下我是怎么引入使用组件的

import Vue from 'Vue';
import App from './components/App.vue';

然后回想过来才发现,只是引入了文件而已,但是并没有真正去用到,所以问题就迎刃而解了

使用 Vue 及加载组件 App.vue

new Vue(App).$mount('#app');

OK 问题解决,最后DOM 报警告说找不到 #app,这个原因是 index.html 模板文件中并没有提供个
入口元素

添加如下:

<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8"/>
        <title>Document</title>
    </head>
    <body>
        ......
        <!-- 在下面添加个id为app的入口给vue即可 -->
        <div id="app"></div>
    </body>
</html>

KO

很简单的问题,暴露出自己对Vue 的一知半解状态,甚是危机感重重

革命尚未成功,代码还得继续造;Bug无止境,修身养心齐码平平平什么呢……!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若叶岂知秋vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值