MongoDB Atlas数据填充报错:import语句无法在模块外使用
解决"Cannot use import statement outside a module"错误
核心原因
你使用了TypeScript的ES模块语法(import/export),但Node.js默认不直接支持在非模块环境下执行这类语法;且直接用node运行.ts文件会跳过TypeScript编译,导致Node.js把.ts当作普通JS文件处理,无法识别import语句。
解决方案
1. 配置package.json为ES模块
在项目根目录的package.json中添加或修改:
{ "type": "module" }
2. 调整tsconfig.json配置
确保tsconfig.json的compilerOptions包含以下适配ES模块的设置:
{ "compilerOptions": { "target": "ES2020", "module": "ESNext", "moduleResolution": "node16", "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true } }
3. 修正npm seed脚本
用ts-node执行TypeScript文件(而非直接用node),修改package.json里的scripts:
{ "scripts": { "seed": "ts-node ./path/to/seeder.ts" } }
替换./path/to/seeder.ts为你实际的seeder文件路径。
4. 统一模块导入语法
把seeder.ts里的require改成import,保持TypeScript风格一致:
import { loremIpsum } from "lorem-ipsum";
验证步骤
- 保存所有配置文件修改
- 重新执行
npm run seed
内容的提问来源于stack exchange,提问作者heyyyitsviv
相关产品推荐
相关产品推荐

