【美年达的开发日记】使用第三方库axios兼容微信小游戏

方案一 :会在最终打包结果内将axios打入main.js内

1、npm install axios -D 安装axios的包
2、从node_modules/axios/dist/获取axios.js
3、在外面代码文件夹Script下创建一个文件夹比如叫Plugins将axios.js放入,形成assets/Script/Plugins/axios.js的目录结构

4、修改axios.js内代码,搜索 isStandardBrowserEnv函数修改为

function isStandardBrowserEnv() {
  //+++++新增部分++++//
  if(typeof cc !='undefined'){
    return false;
  }
  //////////////

  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||
                                           navigator.product === 'NativeScript' ||
                                           navigator.product === 'NS')) {
    return false;
  }
  return (
    typeof window !== 'undefined' &&
    typeof document !== 'undefined'
  );
}

5、在需要用到axios的地方import axios from './Plugins/axios' 即可 目录根据自己的实际情况更改

方案二 :会在最终打包结果内将axios.js单独存放

1、重复方案一前4步
2、修改axios.js的入口函数

(function webpackUniversalModuleDefinition(root, factory) {
 //// ++++新增部分+++ ////
  root = root || globalThis || window;
  root['axios'] = factory();
///////////////////////////
  console.log('初始化axios',root)
	if(typeof exports === 'object' && typeof module === 'object'){
		module.exports = factory();
  }
	else if(typeof define === 'function' && define.amd)
		define([], factory);
	else if(typeof exports === 'object'){
		exports["axios"] = factory();
  }
		
})

3、在creator内选中axios.js在右侧属性检查器内勾选导入为插件
4、在需要用到axios的地方定义一下 const axios = globalThis.axios||window.axios;

3赞

没有 d.ts吗?

不需要哦,这个方法用来对付第三方库的

好耶! :blush: :blush: :blush: :blush: :blush: