为什么 esm 加载器没有找到我的导入?

坦克12

我有一个小型快递服务器,在bin/www.ts我的 app.ts 文件中导入如下:

import app from '../app';

当我构建我的项目并将其转换为 JavaScript 时使用:tsc --project ./然后运行它,nodemon ./build/bin/www我在控制台中收到一个错误消息:

internal/process/esm_loader.js:74
    internalBinding('errors').triggerUncaughtException(
                              ^
Error [ERR_MODULE_NOT_FOUND]: 
Cannot find module '/Users/t86b/Desktop/Dev/Projects/TestServerProject/Server/build/app' 
imported from /Users/t86b/Desktop/Dev/Projects/TestServerProject/Server/build/bin/www.js

该文件存在于我指定的位置,我已经检查过并将其添加"type":"module"到我的package.json文件中。我也从 app.ts 文件中删除了所有需求,但仍然没有。我不知道此时该怎么办。这是我的package.json文件(压缩到重点):

{
  ...
  "scripts": {
    "build": "tsc --project ./",
    "start": "nodemon ./build/bin/www",
    "start:dev": "nodemon -r ./bin/www.ts",
    "tsc": "tsc",
    "tsStart": "node ./build/bin/www"
  },
  ...
  "dependencies": {
    ...
    "express": "^4.17.1",
    "typescript": "^4.0.3"
  },
  "type": "module",
  "devDependencies": {
    ...
    "nodemon": "^2.0.7",
    "ts-node": "^9.1.1"
  }
}

我的ts.config

{
  "compilerOptions": {   
    "target": "es2017",
    "module": "ESNext",
    "lib": ["ES2017"],  
    "outDir": "./build",
    "rootDir": "./",
    "strict": true,
    "moduleResolution": "node", 
    "esModuleInterop": true, 
    /* Advanced Options */
    "skipLibCheck": true, 
    "forceConsistentCasingInFileNames": true   
  }
}

如果有帮助,这里是我的 app.ts,它也没有错误(为了清楚起见进行了压缩):

import express from 'express';
import indexRouter from './routes/index';
...
let app = express();
app.use('/', indexRouter);

export default app;

如何让我的项目看到我的文件,以便我可以启动我的服务器?提前致谢,如果您需要更多详细信息,请告诉我。

坦克12

@ASDFGerte 指出,在 esm 中,您必须包含相对导入的文件扩展名所以,我能够通过改变来解决和运行我的代码:import app from '../app';import app from '../app.js';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的pom.xml依赖没有找到我的詹金斯插件?

为什么\ dt命令给出-没有找到关系?

Angular 2模块中的esm目录的用途是什么?

为什么当TypeScript编译器没有找到Webpack时找不到模块?

为什么libc中的内存分配没有路由到我的分配包装器?

为什么在PhpStorm中没有找到yarn作为程序包管理器?

如何使用异步ESM导入获取ESM模块

在节点V14中从std / esm迁移到esm支持-找不到命名的导入-在std / esm上工作正常

为什么没有找到包“ mono”?

为什么这个jQuery选择器没有找到任何东西?

为什么没有找到路线的动作?

为什么Angular没有看到我的控制器?

在Typescript中,为什么我的通用抽象类在尝试实现它时没有找到类型参数?

为什么我的减速器没有收到我的动作?(使用React和Redux)

为什么Symfony没有找到这条路线?

尽管使用 copts 添加了一个额外的包含目录,为什么 Bazel 没有找到我的包含文件?

为什么我没有被重定向到我选择的路径?反应路由器

为什么 Hazelcast-Eureka-One 插件没有找到我的 Eureka 服务器?

什么是 fesm2015 以及它与 esm2015 的关系?

在 ESM 中导入模块目录

vue.js 的 CDN 和 ESM 构建是什么?

为什么没有找到我的 PASSWORD_REQUIRED_TEMPLATE,但找到了我对 login.html 的直接覆盖?

ESM/节点的正确导入/导出和绑定

为什么没有找到python模块但安装告诉我已经需要

为什么侦听器没有绑定到我分配给它的对象?

React-Typescript:我没有找到为什么我的 getCurrentTime 函数不起作用的问题

为什么我的枚举比较没有找到合适的值?

当没有找到项目时,带有计数器的 Bash Loop 的计数为 1。为什么?

为什么我没有找到 MediaQuery 小部件祖先 .error