You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Power BI自定义视觉对象中添加request库遇问题求助

解决Power BI自定义视觉中request库导入的编译错误

嘿,我刚好碰到过类似的Power BI自定义视觉开发问题,给你梳理下怎么解决!

首先,你遇到的第一个错误Cannot compile modules using option 'out' unless the '--module' flag is 'amd' or 'system',本质是因为Power BI自定义视觉的TypeScript配置里启用了out(或outFile)选项来合并输出文件,而这个选项仅支持amd或system模块类型——你改成system是对的,但后续还有问题,核心原因是request库本身为Node.js设计,浏览器环境不兼容它的依赖,而且request已经在2020年停止维护了,这才是真正的痛点。

下面给你两个可行的方案,优先推荐第一个:

方案一:替换为浏览器友好的HTTP库(强烈推荐)

直接换掉request,用axios这类天生支持浏览器环境的HTTP库,迁移成本低还更可靠:

  • 先卸载request:
    npm uninstall request
    
  • 安装axios:
    npm install axios --save
    
  • 在你的TypeScript代码里导入并使用(API和request类似,上手快):
    import axios from 'axios';
    
    // 示例GET请求
    axios.get('https://your-api-url.com/data')
      .then(res => {
        console.log('请求结果:', res.data);
        // 这里处理你的数据逻辑
      })
      .catch(err => {
        console.error('请求失败:', err);
      });
    
  • 不用修改pbiviz.json的externalJS配置,axios会被Power BI的打包工具正确处理。

方案二:硬扛request的浏览器适配(不推荐)

如果一定要继续用request,得用它的浏览器兼容分支,还要调整配置:

  • 安装浏览器版的request:
    npm install request-browserify --save
    
  • 修正tsconfig.json的配置,确保这些关键项正确:
    {
      "compilerOptions": {
        "module": "system",
        "moduleResolution": "node",
        "target": "es5",
        "outFile": "./dist/visual.js", // 保持你的原有输出路径
        "allowSyntheticDefaultImports": true,
        "esModuleInterop": true
      }
    }
    
  • 更新pbiviz.json的externalJS路径:
    "externalJS": [
      "node_modules/request-browserify/index.js"
    ]
    
  • 代码里改导入路径:
    import * as request from 'request-browserify';
    

另外还要注意:Power BI自定义视觉运行在浏览器沙箱里,如果你调用外部API,必须确保API支持CORS跨域,否则会出现请求被拦截的错误。

内容的提问来源于stack exchange,提问作者Graffl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:34:03