VueCli配置
我使用的版本式vue cli 3.x
1.配置外部的js(微信js-sdk引入)
在vuecli中,引入微信的js-sdk,有两种方式,一种是使用weixin-js-sdk,一种是使用外部js文件的方式。
(1) npm安装weixin-js-sdk的方式
这种方式的引入,就比较简单了,只需要执行安装和引入就可以了。
1 | ## 安装 |
2.vue-cli 引入微信js-sdk使用微信分享 (下载了npm包weixin-js-sdk)
3.vue-cli 中使用微信公众号接口 jssdk (下载了npm包weixin-js-sdk)
4.让vue-cli3.0 配置简单起来(vue.config.js编结) (这个文章对web)
5.ProvidePlugin (官方ProvidePlugin插件的用法)
6.vue/webpack 引入 cdn 资源 (如何将vuejs等内容,通过cdn的方式进行引入)
(2) 外部js文件的方式
第一种使用外部js文件的方式引入js-sdk:
下载js代码,或者使用cdn。在index.html中,添加script,然后在引入的地方忽略eslint检查
1 | <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> |
其中的eslint-disable一定要加,否则就会报错
第二种使用外部js文件的方式引入js-sdk,主要分为以下几个部分,index.html中,vue.config.js中和需要使用wx的地方比如main.js中。
1 | // index.html中引入 |
1.vue cli3 引用外部js方法 (这篇文章虽然写了一部分内容,但是没有全部的vue.config.js配置文件)
2.Vue 中如何引入第三方 JS 库 (这篇文章才最终解决了我的问题。第一种和第二种都可以解决问题,第三种和第四种会出现title的问题,解决方式就是下面问题中提到的几个方法)
3.vue-cli3如何配置externals (如何配置externals)
4.使用vue cli 构建的项目,现在需要使用微信js sdk,如何使用? (这里部分的答案中,提到了如何引入外部js文件,比如使用了imports-loader这个加载器。)
5.webpack-contrib/imports-loader
问题
在vue cli 3.x配置好了微信的js-sdk之后,打开网站,出现了:Cannot read property ‘title’ of undefined
根据参考文章3:
jweixin-1.2.0.js里面的执行方式不适合直接webpack。这个问题的原因是,里面在执行this.document.title的时候出的问题,这个js期望实在浏览器全局作用域下执行(this指向window),但是webpack之后,是在一个function作用域下执行,因此this.document为undefined。
因此有几种方式修改:
(1) 改源码,将jweixin-1.2.0.js中第一个this改为window
(2) 在html中使用script引入
(3) webpack有个script-loader可以让模块文件在global环境下执行
1.jsweixin引入时报错Cannot read property ‘title’ of undefined
2.请问在 vue-cli 引入一个 js 文件(微信)并使用,最简单的方法是什么?
3.jsweixin引入时报错Cannot read property ‘title’ of undefined (这里提到了title问题产生的原因以及解决方法)
4.在 vue 中使用时的尴尬问题。
5.script-loader (官网讲如何使用script加载外部js,在全局上下文(global context)执行一次 JS 脚本。)
3.配置环境变量
有什么我们需要在开发环境中引入本地的http请求路径,比如localhost,在打包到线上的时候,就要换成线上的域名地址,每次打包的时候都要手动去更改,那就缺少自动化的味道了。在vue cli 2.x中,可以通过配置不同的webpack.dev.config.js文件,来区分不同的配置变量。在vue cli 3.x 增加了 .env 环境变量文件。比如:.env.development只在开发环境中引入;.env.production模式用于 vue-cli-service build 和 vue-cli-service test:e2e。
(1) 在根路径下创建.env.development和.env.production这两个文件
(2)文件中分别编写不同的环境配置
1 | ## .env.development文件内容 |
(3) 引入环境变量
1 | let baseDomain=process.env.baseDomain; |
(4) 只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。你可以在应用的代码中访问它们
1.环境变量和模式
4.Proxy配置代理
我在代码中写 chart/data/asset/data/aqi-beijing.json,,本意就是请求:https://echarts.apache.org/examples/data/asset/data/aqi-beijing.json
,可以使用 pathRewrite进行替换。
1 | module.exports = { |
这里还有一个地方注意,就是proxy的配置的匹配规则,是优先匹配,如果前面的已经匹配到了,就不回走后面的代理了。例如同时定义了 “/” 和 “/chart”, 那么全部的代理就都会走 “/”,而不会找到 “/chart”,即便是请求的 “/chart/data” 这样的目录。
1 | proxy: { |
1.vue.config.js proxy里的pathRewrite 需要 pathRewrite , 用 ^/api: ‘’ 把 /api 去掉,这样既能有正确的标识,又能在请求接口的时候去掉 /api
2.VUE解决跨域的proxyTable中pathRewrite 详解
3.vue.config.js proxy里的pathRewrite
4.vue在使用了proxy后如何查看代理的真实请求地址 在proxyTable代理配置的地方设置logLevel,但是我的是proxy配置的代理。
5.vue.config.js代理配置失效 如何解决
6.vue proxy匹配规则 发现三个接口中有两个都以”/api开头”,所以当访问”/apipc/cgi-bin/musicu.fcg”这个接口时正则匹配都会转到第一个的”^/api”代理,这样就导致该接口访问不成功;
7.vue config.js proxy 代理使用记录 查看代理后的真实请求地址, proxy中加入 logLevel:‘debug’,的方法