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

TypeScript Pulumi可复用组件报错:Cannot use import outside module

解决Pulumi可复用组件中"Cannot use import statement outside a module"错误

问题根源

直接从Git仓库安装pulumi-beta包时,仓库仅包含TypeScript源码,Node.js无法直接解析TS语法中的import语句。即便添加"type": "module"也无效——核心问题是未将TS代码编译为Node.js可执行的JS文件。

解决方案

1. 配置pulumi-beta组件仓库的编译与提交

修改package.json

添加编译脚本、指定主入口和类型文件路径:

{
  "name": "pulumi-beta",
  "version": "0.1.0",
  "main": "bin/index.js",
  "types": "bin/index.d.ts",
  "scripts": {
    "build": "tsc"
  },
  // 保留原有依赖等配置
}

调整tsconfig.json

确保编译输出到bin目录,并生成类型声明文件:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "outDir": "./bin",
    "rootDir": "./",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "declaration": true
  }
}

编译并提交产物

运行编译命令生成JS文件:

npm run build

修改.gitignore,移除对bin目录的忽略,将编译后的bin目录提交到GitHub仓库。

2. 重新安装依赖并测试

在pulumi-alpha仓库中执行以下命令:

rm -rf node_modules package-lock.json
npm i git+https://github.com/briancaffey/pulumi-beta.git
tsc
pulumi preview

可选优化:发布到npm仓库

若需更规范的组件分发,可将pulumi-beta发布到npm公有/私有仓库,安装时直接使用包名(如npm i pulumi-beta),避免直接从Git源码安装的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:20:16