-
-
Notifications
You must be signed in to change notification settings - Fork 35.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
943c345
commit e2256a3
Showing
3 changed files
with
74 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<base href="../../" /> | ||
<script src="list.js"></script> | ||
<script src="page.js"></script> | ||
<link type="text/css" rel="stylesheet" href="page.css" /> | ||
</head> | ||
<body> | ||
<h1>[name]</h1><br /> | ||
|
||
<div> | ||
While importing three.js via script tags is a great way to get up and running fast, it has a few drawbacks for longer lived projects, for example: | ||
<ul> | ||
<li>You have to manually fetch and include a copy of the library as part of your project's source code</li> | ||
<li>Updating the library's version is a manual process</li> | ||
<li>When checking in a new version of the library your version control diffs are cluttered by the many lines of the build file</li> | ||
</ul> | ||
</div> | ||
|
||
<div>Using a dependency manager like npm avoids these caveats by allowing you to simply download and import your desired version of the libarary onto your machine.</div> | ||
|
||
<h2>Installation via npm</h2> | ||
|
||
<div>Three.js is published as an npm module, see: <a href="https://www.npmjs.com/package/three" target="_blank">npm</a>. This means all you need to do to include three.js into your project is run "npm install three"</div> | ||
|
||
<h2>Importing the module</h2> | ||
|
||
<div>Assuming that you're bundling your files with a tool such as <a href="https://webpack.github.io/" target="_blank">Webpack</a> or <a href="https://github.com/substack/node-browserify" target="_blank">Browserify</a>, which allow you to "require('modules') in the browser by bundling up all of your dependencies."</div> | ||
|
||
<div> | ||
You should now be able to import the module into your source files and continue to use it as per normal. | ||
</div> | ||
|
||
<code> | ||
var THREE = require('three'); | ||
|
||
var scene = new THREE.Scene(); | ||
... | ||
</code> | ||
|
||
<div> | ||
You're also able to leverage <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import" target="_blank">ES6 import syntax</a>: | ||
</div> | ||
|
||
<code> | ||
import * as THREE from 'three'; | ||
|
||
const scene = new THREE.Scene(); | ||
... | ||
</code> | ||
|
||
<div> | ||
or if you wish to import only select parts of three.js library, for example Scene: | ||
</div> | ||
|
||
<code> | ||
import { Scene } from 'three'; | ||
|
||
const scene = new Scene(); | ||
... | ||
</code> | ||
|
||
<h2>Caveats</h2> | ||
|
||
<div> | ||
Currenlty it's not possible to import the files within the "examples/js" directroy in this way. | ||
This is due to some of the files relying on global namespace pollution of THREE. For more information see <a href="https://github.com/mrdoob/three.js/issues/9562" target="_blank">Transform `examples/js` to support modules #9562</a>. | ||
</div> | ||
</body> | ||
</html> |
e2256a3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link in the README is broken. Is there a "dev" version of the manual?
e2256a3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It'll be fixed soon.