为什么'vue$':'vue/dist/vue.js' 需要改成别的别名才会引用正确?

发布于 2022-09-05 02:31:35 字数 927 浏览 14 评论 0

使用vue2.2.6 webpack打包后 警告

[Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. 

尝试用官方文档的解决方案

resolve:{
        
        alias:{
            'vue$':'vue/dist/vue.js'
        }
    }

依旧报错

Uncaught TypeError: Vue is not a constructor

于是把var Vue=require('vue') 修改成var Vue=require('vue').default

又报之前的错误,说明引用的js文件还是不正确

resolve:{
        
        alias:{
            'vuee$':'vue/dist/vue.js'
        }
    }

然后

var Vue=require('vuee');

new Vue({
    el:'#app',
    
}) 

问题解决,但是我不明白vue的别名为什么不能使用。我在安装vue的时候是用npm install vue --save 的方式安装的,我想应该是node_modules模块引用的优先级高于webpack别名的优先级。

但是我的猜测没有任何依据,希望有人能解答我的疑惑。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

怼怹恏 2022-09-12 02:31:35

vue$ 应该是特别的应用标志符,你使用后导致了冲突;其实这里的命名可以使用root@

放低过去 2022-09-12 02:31:35

直接引用不就行了

久而酒知 2022-09-12 02:31:35

resolve:{

    
    alias:{
        'vuee
:'vue/dist/vue.js'
    }
}

这个的作用其实就是为了解决文件路径过长,方便引用,加$这种用法还是少用,像jquery,vue自身都有对$的应用,容易冲突,或许就是这么巧让你赶上了,换个名吧,建议给自己制定vue的项目规范,比如别名一般用 名称+@ vue@
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文