将 three.js 包含到 wordpress 主题中

Include three.js into wordpress theme

基本上我想要实现的目标很简单:

我想在我当前的自定义 wordpress 主题中使用 three.js。

遗憾的是,我似乎找不到有关如何执行此操作的任何信息。 我通过 functions.php 对所有脚本进行排队,我想这是默认方法。

由于 three.js 必须加载“type=module”,我无法使其正常工作,而且似乎必须以其他方式完成。导入语句应该出现在我的主题 header 中吗?我一直认为这是不好的做法...然后如何将我的 three.js 代码写入外部 js 文件?

有人可以帮帮我吗?

Since three.js has to be loaded with "type=module"

事实并非如此。 three.js 提供一个 ESM (three.module.js) 和两个 UMD 构建 (three.jsthree.min.js)。在你的 wordpress 主题中包含缩小的 UMD 构建应该可以解决这个问题。以下实例使用此构建文件:

let camera, scene, renderer;
let mesh;

init();

function init() {

    camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
    camera.position.z = 1;

    scene = new THREE.Scene();

    const geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
    const material = new THREE.MeshNormalMaterial();

    mesh = new THREE.Mesh( geometry, material );
    scene.add( mesh );

    renderer = new THREE.WebGLRenderer( { antialias: true } );
    renderer.setSize( window.innerWidth, window.innerHeight );
    renderer.setAnimationLoop( animation );
    document.body.appendChild( renderer.domElement );

}

function animation( time ) {

    mesh.rotation.x = time / 2000;
    mesh.rotation.y = time / 1000;

    renderer.render( scene, camera );

}
body {
    margin: 0;
}
<script src="https://cdn.jsdelivr.net/npm/three@0.130.1/build/three.min.js"></script>