我将 Nest.js 与打字稿一起使用并想添加
import { DRACOLoader, GLTFLoader, TextureLoader } from 'node-three-gltf';
Run Code Online (Sandbox Code Playgroud)
在我的一个模块中。但这会导致以下错误
c:\m3\dist\src\gltftest\gltftest.controller.js:23
const node_three_gltf_1 = require("node-three-gltf");
^
Error [ERR_REQUIRE_ESM]: require() of ES Module c:\m3\node_modules\node-three-gltf\build\index.js from c:\m3\dist\src\gltftest\gltftest.controller.js not supported.Instead change the require of index.js in c:\m3\dist\src\gltftest\gltftest.controller.js to a dynamic import() which is available in all CommonJS modules.
at Object.<anonymous> (c:\m3\dist\src\gltftest\gltftest.controller.js:23:27)
at Object.<anonymous> (c:\m3\dist\src\gltftest\gltftest.module.js:12:30)
Run Code Online (Sandbox Code Playgroud)
我使用的 node-三-gltf@1.0.3 只是一个 esm 模块。导致我在打字稿模块/控制器中使用 ESM 导入语法来导入 ESM 模块 node- Three-gltf 并收到此错误(至少对我来说 - 对这个问题相当陌生)奇怪的情况。
似乎是因为我的项目的 Nest.js 构建将我的 ES 语法转换为 CJS 语法,从而用 require 替换了我的导入,但没有转换 node-3-gltf 模块,然后抱怨。
我的 tsconfig 是这样的:
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "Node",
"target": "esnext",
...
Run Code Online (Sandbox Code Playgroud)
理论上我看到以下选项:
不支持 node_modules\connect-typeorm\out' 解析从 C:\m3\dist\src\main.js 导入的 ES 模块 您的意思是导入 connect-typeorm/out/index.js 吗?
所以我想知道 sb 是否可以建议我如何调整 Nest.js 构建配置以对依赖项进行 esm->cjs 转换,或者为我指明另一个方向?
谢谢!时间
| 归档时间: |
|
| 查看次数: |
17369 次 |
| 最近记录: |