vue3 接入网易易盾(webpack,vite)

1 篇文章 0 订阅

webpack项目中配置:

方法一:

1) index.html
<script src="https://cstaticdun.126.net/load.min.js?t=123"></script>

2) vue.config.js:
configureWebpack:{
    externals:{
      initNECaptcha:'initNECaptcha'
    }
 }

3) 使用组件页:
import initNECaptcha from 'initNECaptcha'

初始化:
initNECaptcha({
        captchaId: 'XXX',
        element:'#captcha',
        mode: 'popup',
        width:'3rem',
        onVerify:async (err,data)=>{  //注意onVerify层级,与onload,onerror不在同一层
            if (err) return;
            let res = await axios({
                method: "post",
                url: "/yidun/validate",  //后端做校验的接口
                headers:{
                    'x-ca-reqid':data.validate
                }
            });
            if (!isOk(res, "网易易盾二次校验")) {
                return ;
            }
            //下面写验证成功后要执行的方法

             sendMsg()
        }
    },
    function onload (instance) {
        captchaIns = instance;
    },
    function onerror (err) {
        // 初始化失败后触发该函数,err对象描述当前错误信息
        console.log('onerror',err)
    })

方法二:(不推荐)

1) index.html
<script src="https://cstaticdun.126.net/load.min.js?123"></script>

2)vue.config.js:

module.exports = {

...

lintOnSave: true  //关闭语法每次保存时的语法检查,没其他方法解决时可以用来救急

...

}

vite中配置:

其他与在webpack中一直,除vite.config.ts中设置不同:

1)npm install vite-plugin-resolve-externals -d

2)vite.config.ts中引入:

import resolveExternalsPlugin from 'vite-plugin-resolve-externals'

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
import styleImport, { VantResolve } from "vite-plugin-style-import";
import resolveExternalsPlugin from 'vite-plugin-resolve-externals'
const resolve = (dir: string): string => path.resolve(__dirname, dir);  //文件引入

export default defineConfig({
    base: "/",
    plugins: [
        vue(),
        styleImport({
          resolves: [VantResolve()],
        }),
        resolveExternalsPlugin({
          initNECaptcha:'initNECaptcha'  //名字如果自己不确定,在控制台打印一下window对象,里面找找
        })
    ],
    resolve: {
    alias: {
      "@": resolve("src"),
      ...
    }
    ...
})

关于页面中引入import initNECaptcha from 'initNECaptcha'时,eslint提示报错,可以在声明文件(.d.ts)中加入:declare module 'initNECaptcha';

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值