node.js中three.js文件中的javascript`require`而不是html`script`

node.js中three.js文件中的javascript`require`而不是html`script`,javascript,html,node.js,three.js,browserify,Javascript,Html,Node.js,Three.js,Browserify,我在node.js中的three.js文件中使用javascriptrequire而不是htmlscript。 html文件的一部分: <script src="../build/three.js"></script> <script src="js/controls/DragControls.js"></script> <script src="js/controls/OrbitControls.js"></script>

我在node.js中的three.js文件中使用javascript
require
而不是html
script
。 html文件的一部分:

<script src="../build/three.js"></script>

<script src="js/controls/DragControls.js"></script>
<script src="js/controls/OrbitControls.js"></script>
<script src="js/controls/TransformControls.js"></script>

<script src="js/libs/stats.min.js"></script>
<script src="js/libs/dat.gui.min.js"></script>

因此,
browserify
命令在浏览器中显示空白页。我认为javascript js文件中的代码可能不正确。那么我该怎么办?

将browserify与three.js一起使用的问题是:

  • three.js使用全局变量
    three
    作为其名称空间,当您
    require('three')
    (假设您安装了
    npm three
    )时,将返回此全局对象,因此
    var three=require('three')几乎满足了您的期望
  • three.js扩展大多不会返回(通过
    module.exports
    如果可用)它们定义的对象,因此在它们的情况下
    three.OrbitControls=require(“…”)
    不会执行您期望的操作。相反,他们只是希望全局对象
    THREE
    存在并为其分配一个新属性。您将在这些文件中看到
    THREE.OrbitControls=function(){…}
    的模式
  • 这不起作用,因为如果有
    module.exports
    供其使用,three.js(主库)将不会将自己分配给window对象(您可以很容易地进行测试,只需添加
    console.log(window.three)
要解决此问题,只需在加载扩展之前执行此步骤,如下所示:

var THREE = require('three');

window.THREE = THREE;

require('./path/to/OrbitControls.js');
// ...

console.log(THREE.OrbitControls);

与three.js一起使用browserify的问题是:

  • three.js使用全局变量
    three
    作为其名称空间,当您
    require('three')
    (假设您安装了
    npm three
    )时,将返回此全局对象,因此
    var three=require('three');
    几乎满足您的期望
  • three.js扩展大多不返回(通过
    module.exports
    如果可用)它们定义的对象,因此在它们的情况下
    three.OrbitControls=require(“…”)
    不会执行您期望的操作。相反,他们只是希望全局对象
    THREE
    存在并为其分配新属性。您将在这些文件中看到
    THREE.OrbitControls=function(){…}
    的模式
  • 这不起作用,因为如果有
    module.exports
    供其使用,three.js(主库)将不会将自己分配给window对象(您可以很容易地进行测试,只需添加
    console.log(window.three)
要解决此问题,只需在加载扩展之前执行此步骤,如下所示:

var THREE = require('three');

window.THREE = THREE;

require('./path/to/OrbitControls.js');
// ...

console.log(THREE.OrbitControls);

源代码是:您是否尝试打开以查看是否有任何错误消息?源代码是:您是否尝试打开以查看是否有任何错误消息?I did.show blank page.I使用gitshell.browse中的browserify a.js | indexhtmlify b.html在chrome中使用browse.No window No console.as源文件它唯一的拖放代码更改脚本html以需要jsmat.我认为问题在于require代码。无法将数据传输到正文。那么您认为呢?regardsplease看一看:Regardsmy问题解决了。我将container.appendChild更改为document.body.appendChild,并使用var Stats=require('./js/libs/Stats.min.js');var dat=require('./js/libs/dat.gui.min.js'))我做了。显示空白页。我在gitshell中使用browserify a.js | indexhtmlify b.html。在chrome中浏览。没有窗口没有控制台。作为源文件,它唯一的拖放代码将脚本html更改为需要js格式。我认为问题在于需要代码。无法将数据传输到正文。那么你认为如何?Regard请查看:和Regardsmy问题已解决。我将container.appendChild更改为document.body.appendChild,并使用var Stats=require('./js/libs/Stats.min.js');和var dat=require('./js/libs/dat.gui.min.js'))