requirejs - microsoftTeams 未定义
问题描述
我正在创建一个团队应用程序以在个人选项卡中公开网页,并且我想掌握当前用户。我的打字稿是
import * as microsoftTeams from "@microsoft/teams-js";
...
microsoftTeams.initialize(() => {
microsoftTeams.getContext(() => {
microsoftTeams.authentication.getAuthToken({
运行时失败,浏览器报告错误
Uncaught ReferenceError: microsoftTeams is not defined
我正在使用 requirejs 加载依赖项
requirejs.config({
baseUrl: "wwwroot/js/app",
paths: {
knockout: '../lib/knockout/knockout-latest',
jquery: '../lib/jquery/jquery.min',
bootstrap: '../lib/bootstrap/bootstrap.bundle.min',
smartwizard: '../lib/smartwizard/jquery.smartWizard.min',
'@microsoft/teams-js': '../lib/teams/MicrosoftTeams.min'
}
});
define(['knockout', 'jquery', 'bootstrap', 'smartwizard', '@microsoft/teams-js', 'NewSiteWizardViewModel'], function (ko, jquery, bs, wiz, teams, app) {
执行时,我可以看到浏览器加载了 MicrosoftTeams.min.js 文件,但 team 参数始终未定义,并且 microsoftTeams 全局变量也未定义,这就是上述代码失败的原因
用requirejs加载它时我需要做其他事情吗?
解决方案
你几乎是对的。问题是 MS 团队 lib 与 AMD 兼容,但它将自己定义为microsoftTeams
. 因此,您需要做的是修改 config.paths 中的 ID,它会按预期工作:
requirejs.config({
baseUrl: "wwwroot/js/app",
paths: {
knockout: '../lib/knockout/knockout-latest',
jquery: '../lib/jquery/jquery.min',
bootstrap: '../lib/bootstrap/bootstrap.bundle.min',
smartwizard: '../lib/smartwizard/jquery.smartWizard.min',
'microsoftTeams': '../lib/teams/MicrosoftTeams.min'
}
});
define(['knockout', 'jquery', 'bootstrap', 'smartwizard', 'microsoftTeams', 'NewSiteWizardViewModel'], function (ko, jquery, bs, wiz, teams, app) {
推荐阅读
- javascript - 通过更新innerHTML设置的html中的onclick函数不起作用
- javascript - 为什么在这段代码中使用 IIFE 会产生截然不同的输出?
- yaml - terraform 从 yaml 创建列表以用于 subject_alternative_names
- azure - 在 Azure AD 上,如何从 cqearlyaccess.onmicrosoft.com 取回我的域?
- javascript - 用数组生成表
- git - 如何修复“此分支是 master 后面的 1 个提交。”
- git - ssh -T git@bitbucket.org 登录用户
- sql - 在 SQL Server 中创建组 ID
- typescript - 负类型断言返回谓词
- flutter - 如何在 Flutter 的另一个全宽屏幕上创建一个 1/3 宽度的屏幕?