使用 importmap 导入 troika-two-text 时出错

问题描述 投票:0回答:1

我试图通过 html 导入

troika-three-text
到我的 Three.js 脚本中,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Three.js OrbitControls Example (r168)</title>
</head>
<body>
    <!-- Set canvas size with width and height attributes -->
    <canvas id="__canvas_id__" width="600" height="400"></canvas>
    <script type="importmap">
        {
            "imports": {
                "three": "https://unpkg.com/[email protected]/build/three.module.js",
                "OrbitControls": "https://unpkg.com/[email protected]/examples/jsm/controls/OrbitControls.js",
                "troika-three-text": "https://unpkg.com/[email protected]/dist/troika-three-text.esm.js"
            }
        }
    </script>
    <script type="module" src="4viz3d.js"></script>
</body>
</html>

但是,当我尝试使用

4viz3d.js
将包导入到我的
import { Text } from 'troika-three-text';
脚本中时,出现错误,并且不再显示图像。

对可能出现的问题有什么想法吗?

javascript html three.js
1个回答
0
投票

我认为你需要导入所有的三驾马车依赖项:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Three.js OrbitControls Example (r168)</title>
</head>
<body>
    <!-- Set canvas size with width and height attributes -->
    <canvas id="__canvas_id__" width="600" height="400"></canvas>
    <script type="importmap">
        {
            "imports": {
                "three": "https://unpkg.com/[email protected]/build/three.module.js",
                "OrbitControls": "https://unpkg.com/[email protected]/examples/jsm/controls/OrbitControls.js",
                "troika-three-text": "https://unpkg.com/troika-three-text@latest/dist/troika-three-text.esm.js",
                "troika-three-utils": "https://unpkg.com/troika-three-utils@latest/dist/troika-three-utils.esm.js",
                "troika-worker-utils": "https://unpkg.com/troika-worker-utils@latest/dist/troika-worker-utils.esm.js",
                "webgl-sdf-generator": "https://unpkg.com/webgl-sdf-generator@latest/dist/webgl-sdf-generator.mjs",
                "bidi-js":             "https://unpkg.com/bidi-js@latest/dist/bidi.mjs"
            }
        }
    </script>
    <script type="module" src="4viz3d.js"></script>
</body>
</html>

至少可以避免错误:

Uncaught TypeError: Failed to resolve module specifier "troika-three-text". Relative references must start with either "/", "./", or "../".

© www.soinside.com 2019 - 2024. All rights reserved.