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

Node.js中'import ... ='仅可用于TypeScript文件错误求助

Node.js模块导入报错问题解决

错误原因

  1. 文件格式与模块系统冲突:package.json设置了"type": "module"(启用ES模块),但入口文件是Index.cjs(CommonJS格式后缀),同时在.cjs文件里混用了ES模块的import语法,Node.js对两种模块的语法解析规则不同,直接触发语法报错。
  2. import语法错误:ES模块中不存在import msg as msg这种写法,正确的命名导入语法是import { 导出名 } from '模块路径';另外代码里调用tm.msg,但未导入tm变量,变量名完全不匹配。
  3. 导出导入不匹配:tm.js用CommonJS的exports.msg导出,但导入时没有使用对应正确的语法。

两种修复方案

方案一:统一使用ES模块

  • 将Index.cjs重命名为Index.js(package.json的"type": "module"会让所有.js文件按ES模块解析)
  • 修正Index.js代码:
import { msg } from "./tm.js";
console.log(msg(5,6));
  • (可选)把tm.js改为ES模块风格导出,保持代码统一:
export function msg(a,b) {
    console.log("Function Imported")
    return a+b;
}

方案二:统一使用CommonJS模块

  • 编辑package.json,删除"type": "module"字段(Node.js默认使用CommonJS)
  • 修正Index.cjs代码为CommonJS语法:
const tm = require("./tm.js");
console.log(tm.msg(5,6));
  • tm.js代码无需修改,保持原有CommonJS导出即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:47:22