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

TypeScript编译后执行Node.js脚本提示MODULE_NOT_FOUND找不到指定文件的问题求助

TypeScript编译后执行Node.js脚本提示MODULE_NOT_FOUND找不到指定文件的问题求助

我在编译TypeScript文件后,在VS Code终端运行script.js时遇到了这个错误:

node:internal/modules/cjs/loader:1228
throw err;
^

Error: Cannot find module '/Users/<username>/projects/course tree/course_tree/scripts/script.js'
    at Function._resolveFilename (node:internal/modules/cjs/loader:1225:15)
    at Function._load (node:internal/modules/cjs/loader:1055:27)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:170:5)
    at node:internal/main/run_main_module:36:49 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v22.14.0

我完全搞不懂是什么导致了这个错误,已经搜过Stack但没找到适配我情况的解决方案。我刚接触TypeScript,对模块和修改tsconfig.json不太熟悉。

我的项目文件夹结构如下:

项目文件夹截图

我的tsconfig.json配置如下:

{
  "compilerOptions": {
    "target": "es2016",
    "module": "Node16",
    "moduleResolution": "nodenext",
    "outDir": "./ts-out",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "skipLibCheck": true
  },
  "type": "module",
  "include": ["./ts-in"],
  "exclude": []
}

我的script.ts源文件内容是:

import * as d3 from "d3";
import Node from "./node.js";
import Course from "./course.js";
import Graph from "./graph.js"

let c1 : Course = new Course("CPSC 110", 4);
let c2 : Course = new Course("CPSC 210", 4);
// c2.addPrequisite(c1);
console.log("Hellow");
console.log(c1.courseId);
c1.print_position();
c2.print_position();
// console.log(c2.prerequisites);

let graph : Graph = new Graph();
graph.addNode(c1);
console.log(c1.position);
console.log(graph.adj_matrix);
graph.addNode(c2);
console.log(c2.position);
console.log(graph.adj_matrix);

let c3 : Node = new Course("CPSC 121", 4);
graph.addNode(c3);
console.log(c3.position);
console.log(graph.adj_matrix);

let c4 : Node = new Course("CPSC 107", 3);
graph.addNode(c4);
console.log(c4.position);
console.log(graph.adj_matrix);

let c5 : Node = new Course("CPSC 103", 3);
graph.addNode(c5);
console.log(c5.position);
graph.addPrequisite(c5, c4);
console.log(graph.adj_matrix);
console.log(graph.course_nodes);

编译生成的script.js内容是:

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const course_js_1 = __importDefault(require("./course.js"));
const graph_js_1 = __importDefault(require("./graph.js"));

let c1 = new course_js_1.default("CPSC 110", 4);
let c2 = new course_js_1.default("CPSC 210", 4);
// c2.addPrequisite(c1);
console.log("Hellow");
console.log(c1.courseId);
c1.print_position();
c2.print_position();
// console.log(c2.prerequisites);

let graph = new graph_js_1.default();
graph.addNode(c1);
console.log(c1.position);
console.log(graph.adj_matrix);
graph.addNode(c2);
console.log(c2.position);
console.log(graph.adj_matrix);

let c3 = new course_js_1.default("CPSC 121", 4);
graph.addNode(c3);
console.log(c3.position);
console.log(graph.adj_matrix);

let c4 = new course_js_1.default("CPSC 107", 3);
graph.addNode(c4);
console.log(c4.position);
console.log(graph.adj_matrix);

let c5 = new course_js_1.default("CPSC 103", 3);
graph.addNode(c5);
console.log(c5.position);
graph.addPrequisite(c5, c4);
console.log(graph.adj_matrix);
console.log(graph.course_nodes);

最开始我给每个.ts文件都创建了d.ts文件,因为导入语句一直报语法错误。奇怪的是,当我把相对路径从../ts-out/<name-of-js-file>.js改成./<name-of-js-file>.js后,语法错误就消失了。而且我编译.ts文件的时候没遇到任何问题,错误只在输入node script.js后出现。我还试过rm -rf node_modules然后npm install,但也没用。所有模块都是我自己创建的本地模块,所以导入用的都是相对路径。之前把所有.js、.ts文件还有tsconfig.json放在同一个文件夹里的时候完全没这些问题,就是开始整理文件夹结构后才出的状况。

真心希望有人能给我指个方向,告诉我该怎么解决这个问题🙏

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:54:57