ReferenceError:未定义三个

时间:2019-05-14 14:22:55

标签: javascript reactjs three.js

我试图这样从三个(节点模块)导入SSAO shader

import {SSAOShader} from 'three/examples/js/shaders/SSAOShader'` 

但是我得到了:

ReferenceError: THREE is not defined
    ./node_modules/three/examples/js/shaders/SSAOShader.js
    node_modules/three/examples/js/shaders/SSAOShader.js:9
       6 |  * https://learnopengl.com/Advanced-Lighting/SSAO
       7 |  *
       8 |  */
    >  9 | THREE.SSAOShader = {
      10 |   defines: {
      11 |     "PERSPECTIVE_CAMERA": 1,
      12 |     "KERNEL_SIZE": 32

链接到jsm文件没问题,但是链接到js文件会引发错误。

import React, { Component } from 'react';
import * as THREE from 'three';
import {GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader';
import {OBJLoader} from 'three/examples/jsm/loaders/OBJLoader';
import {SSAOShader} from 'three/examples/js/shaders/SSAOShader';

希望能够使用该库而不会引发错误。

1 个答案:

答案 0 :(得分:2)

  

从“三/ examples / js / shaders / SSAOShader”导入{SSAOShader};

由于SSAOShader不是模块,因此此代码行无效。现在,您必须自己将文件转换为模块。稍后,SSAOShader目录中将提供jsm的模块版本。

three.js R104