2017-04-22 27 views
0

我使用JavaScript require而不是HTML script在three.js所在node.js中的文件 一个html文件的部分:的javascript'的require`而不是HTML`在three.js所Node.js的中文件script`

<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> 

的等效部分JavaScript文件:

var THREE = require('../build/three.js') 

//module.exports = THREE 

THREE.DragControls = require('./js/controls/DragControls.js') 
THREE.OrbitControls = require('./js/controls/OrbitControls.js') 
THREE.TransformControls = require('./js/controls/TransformControls.js') 

var Stats = require('./js/libs/stats.min.js') 
var dat = require('./js/libs/dat.gui.min.js') 

所以在browser.I的browserify命令显示空白页想也许代码在javascript js文件都没有correct.so我该怎么办?

+0

来源: https://github.com/mrdoob/three.js/blob/dev /examples/webgl_geometry_spline_editor.html – hasanbaghal

+0

是否尝试打开[chrome developer-tools](https://developer.chrome.com/devtools )查看是否有任何错误消息? –

回答

1

使用browserify与three.js所共同问题是这样的:

  • three.js所使用全局变量THREE因为它的命名空间,当你require('three')(假设你没有npm install three),这一全球目标将是返回,所以var THREE = require('three');几乎是你所期望的。
  • 的three.js所扩展大多不(如果可用通过module.exports)返回他们定义的对象,所以在他们的情况THREE.OrbitControls = require('...')不会做你期望的。相反,他们只是期望全局对象THREE存在并为其分配新的属性。您将在这些文件中看到THREE.OrbitControls = function() {...}的模式。
  • 这不起作用,因为three.js所(主库)本身不会分配给窗口对象,如果有module.exports它使用(你可以很容易地测试这一点,只需添加一个console.log(window.THREE)

为了解决这个问题,你只需要加载扩展,这样才做到这一步:

var THREE = require('three'); 

window.THREE = THREE; 

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

console.log(THREE.OrbitControls); 
+0

我did.show空白页面。我在Chrome浏览器的gitshell.browse中使用browserify a.js | indexhtmlify b.html。无窗无console.as源文件它唯一的拖放代码改变脚本的HTML需要JS format.I认为这个问题是需要codes.couldn't将数据传送到你认为什么body.so?对于 – hasanbaghal

+0

请花看在: http://stackoverflow.com/questions/43582643/summerized-i-want-pure-js-file-in-node-js-render-phrase-in-three-js-javascript 和 https://stackoverflow.com/questions/43568048/require-js-libs-stats-min-js-and-require-js-libs-dat-gui-min-js-phras 问候 – hasanbaghal

+0

我的问题解决了.as我将container.appendChild更改为document.body.appendChild并使用var Stats = require('./ js/libs/stats.min.js');和var dat = require('./ js/libs/dat.gui.min.js') – hasanbaghal

相关问题