Installation.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <!DOCTYPE html>
  2. <html lang="ru">
  3. <head>
  4. <meta charset="utf-8">
  5. <base href="../../../"/>
  6. <script src="page.js"></script>
  7. <link type="text/css"
  8. rel="stylesheet"
  9. href="page.css"/>
  10. </head>
  11. <body>
  12. <h1>Установка ([name])</h1>
  13. <p>
  14. Вы можете установить three.js с помощью [link:https://www.npmjs.com/ npm] и современных инструментов сборки или
  15. быстро начните работу со статического хостинга или CDN. Для большинства пользователей установка из npm является
  16. лучшим выбором.
  17. </p>
  18. <p>
  19. Что бы вы ни выбрали, будьте последовательны и импортируйте все файлы из одной и той же версии библиотеки.
  20. Смешивание файлов из разных источников может привести к включению дублирующегося кода или даже к неожиданной
  21. поломке
  22. приложения.
  23. </p>
  24. <p>
  25. Все способы установки three.js зависят от модулей ES (см.
  26. [link:https://eloquentjavascript.net/10_modules.html#h_hF2FmOVxw7 Eloquent JavaScript: ECMAScript Modules]),
  27. которые
  28. позволяют включать в конечный проект только те части библиотеки, которые необходимы.
  29. </p>
  30. <h2>Установка из npm</h2>
  31. <p>
  32. Чтобы установить [link:https://www.npmjs.com/package/three three] модуль npm, откройте окно терминала в папке
  33. вашего
  34. проекта и запустите:
  35. </p>
  36. <code>
  37. npm install three
  38. </code>
  39. <p>
  40. Пакет будет загружен и установлен. Когда вы будете готовы импортировать его в свой код:
  41. </p>
  42. <code>
  43. // Вариант 1: Импортируйте весь three.js основная библиотека.
  44. import * as THREE from 'three';
  45. const scene = new THREE.Scene();
  46. // Вариант 2: Импортируйте только те детали, которые вам нужны.
  47. import { Scene } from 'three';
  48. const scene = new Scene();
  49. </code>
  50. <p>
  51. При установке из npm вы почти всегда будете использовать какой-либо
  52. [link:https://eloquentjavascript.net/10_modules.html#h_zWTXAU93DC bundling tool], чтобы объединить все пакеты,
  53. необходимые вашему проекту, в один файл JavaScript. В то время как любой современный пакет JavaScript можно
  54. использовать с three.js , самым популярным выбором является [link:https://webpack.js.org/ webpack].
  55. </p>
  56. <p>
  57. Не ко всем функциям можно получить доступ непосредственно через модуль <em>three</em> (также называемый "голым
  58. импортом"). Другие популярные части библиотеки, такие как элементы управления, загрузчики и эффекты
  59. постобработки,
  60. должны быть импортированы из подпапки [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm
  61. examples/jsm].
  62. Чтобы узнать больше, смотрите <em>Примеры</em> ниже.
  63. </p>
  64. <p>
  65. Узнайте больше о модулях npm по ссылке [link:https://eloquentjavascript.net/20_node.html#h_J6hW/SmL/a Eloquent
  66. JavaScript: Installing with npm](Выразительный JavaScript: Установка с помощью npm).
  67. </p>
  68. <h2>Установка с CDN или статического хостинга</h2>
  69. <p>
  70. В three.js библиотеку можно использовать без какой-либо системы сборки, либо загрузив файлы на свой собственный
  71. веб-сервер, либо используя существующий CDN. Поскольку библиотека полагается на модули ES, любой скрипт, который
  72. ссылается на нее, должен использовать <em>type="module"</em>, как показано ниже.
  73. Также требуется определить карту импорта, которая разрешает пустой модуль, указанный как `three`.
  74. </p>
  75. <code>
  76. &lt;script type="importmap">
  77. {
  78. "imports": {
  79. "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js"
  80. }
  81. }
  82. &lt;/script>
  83. &lt;script type="module">
  84. import * as THREE from 'three';
  85. const scene = new THREE.Scene();
  86. &lt;/script>
  87. </code>
  88. <h2>Дополнения</h2>
  89. <p>
  90. Ядро three.js сосредоточен на наиболее важных компонентах 3D-движка. Многие другие полезные компоненты, такие
  91. как элементы управления, загрузчики и эффекты постобработки, являются частью каталога
  92. [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm examples/jsm]. Они называются "дополнениями"(addons) (ранее назывались "примерами"(examples)),
  93. потому что, хотя вы можете использовать их в готовом виде, они также предназначены для ремиксов и кастомизации.
  94. Эти компоненты всегда синхронизируются с основной библиотекой, в то время как аналогичные пакеты сторонних
  95. разработчиков в npm поддерживаются разными пользователями и могут быть устаревшими.
  96. </p>
  97. <p>
  98. Дополнения не нужно <em>устанавливать</em> отдельно, но их нужно <em>импортировать</em> отдельно. Если three.js был
  99. установлен с помощью npm, вы можете загрузить компонент [page:OrbitControls](Управление орбитой) с помощью:
  100. </p>
  101. <code>
  102. import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
  103. const controls = new OrbitControls( camera, renderer.domElement );
  104. </code>
  105. <p>
  106. Если three.js был установлен с CDN, используйте тот же код, но с `three/addons/` в карте импорта.
  107. </p>
  108. <code>
  109. &lt;script type="importmap">
  110. {
  111. "imports": {
  112. "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
  113. "three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
  114. }
  115. }
  116. &lt;/script>
  117. &lt;script type="module">
  118. import * as THREE from 'three';
  119. import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
  120. const controls = new OrbitControls( camera, renderer.domElement );
  121. &lt;/script>
  122. </code>
  123. <p>
  124. Важно, чтобы все файлы использовали одну и ту же версию. Не импортируйте разные дополнения(addons) из разных версий и
  125. не используйте дополнения(addons) из версии, отличной от three.js самой библиотека.
  126. </p>
  127. <h2>Совместимость</h2>
  128. <h3>CommonJS импорт</h3>
  129. <p>
  130. В то время как большинство современных пакетов JavaScript теперь поддерживают модули по умолчанию, некоторые
  131. старые
  132. инструменты сборки могут этого не делать. В этих случаях вы, вероятно, можете настроить пакет для подключения
  133. модулей ES: [link:http://browserify.org/ Browserify] просто нужен плагин [link:https://github.com/babel/babelify babelify] , как пример.
  134. </p>
  135. <h3>Node.js</h3>
  136. <p>
  137. Так как three.js создан для Интернета, он зависит от браузера и DOM API, которые не всегда существуют в Node.js.
  138. Некоторые из этих проблем могут быть решены с помощью прослоек, таких как
  139. [link:https://github.com/stackgl/headless-gl headless-gl], или путем замены компонентов, таких как
  140. [page:TextureLoader], пользовательскими альтернативами. Другие API-интерфейсы DOM могут быть глубоко переплетены
  141. с использующим их кодом, и обойти их будет сложнее.
  142. Мы приветствуем простые и поддерживаемые предложения `pull requests` для улучшения поддержки Node.js, но
  143. рекомендуем сначала открыть `issue`(вопрос), чтобы обсудить ваши улучшения.
  144. </p>
  145. <p>
  146. Обязательно добавьте `{ "type": "module" }` в свой `package.json`, чтобы включить модули ES6 в ваш проект.
  147. </p>
  148. </body>
  149. </html>