webpack从index.html中引入vue.min.js改为webpack引入vue包

今天遇到一个页面加载不起来的问题,从网络请求的资源列表中看到,有几个资源请求了好久都没反应,通过项目中的index.html看到这几个文件是通过script的方式引入的,其他服务器上的资源都已经加载好了,就剩这几个了,于是就想把他们移除,直接编译打包到本地项目,但是项目现在处于维护阶段,也不是我创建的项目,于是只能小心摸索

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache, must-revalidate">
    <meta http-equiv="expires" content="-1">  
    <link rel="icon" href='./static/images/logo.png' type="image/x-icon"/>
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <title>****</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
    <script src="https://cdn.bootcss.com/vue/2.6.11/vue.min.js"></script>
    <script src="https://cdn.bootcss.com/vue-router/3.1.2/vue-router.min.js"></script>
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  </body>
</html>

但是把这3个script和一个link删除之后,报错:

 ReferenceError: Vue is not defined

果然是项目中没有引入vue、element-ui的包,

于是执行了npm install vue@2.5.17把缺少的包都装上去,注意版本号,我加上@2.5.17是因为直接安装vue会报错

Vue packages version mismatch

然后还试着重新安装了vue-router, vue-cli虽然不知道是不是必须的

重新安装vue之后依然报错 ReferenceError: Vue is not defined,于是仔细对比了此项目,和自己用vue init创建的项目,发现在build/webpack.base.conf.js里面有少许差异,于是做了修改

  删掉
  externals: {
    'vue': 'Vue',
    'vue-router': 'VueRouter',
    'element-ui': 'ELEMENT',
 },
 
 ===============================================
 
  resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
    }
  },
  替换成
  resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
      '@api': resolve('src/api'),
      'static': path.resolve(__dirname, '../static'),
    }
  },

这下好了,vue本身没问题了,但是又报element-ui组件识别不出来的错误,

再对比一下main.js,发现直接从script引用的element并没有执行Vue.use(ElementUI),加上这一行代码之后vue也正常了

虽然不知道一开始项目的创建者怎么把项目做成这个样子的,像是为了减轻服务器的压力,结果导致其他域名出现问题的时候,服务器的项目反而加载不了

也算是多了一次教训

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值