У меня проблемы с запуском библиотеки Three.js в качестве модуля в соответствии с руководством https://threejs.org/docs/#manual/en/introduction/Import-via-modules
Вот что я сделал:
Создание package.json
npm init
Установить веб-пакет
npm i --save-dev webpack webpack-cli
Установить Three.js
npm install three
Создатьindex.html со следующим кодом
<!DOCTYPE html>
<html lang="en">
<head>
<title>three.js webgl - cloth simulation</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<style>
body {
background-color: #cce0ff;
color: #000;
}
a {
color: #080;
}
</style>
</head>
<body>
<script type="module" src="./src/index.js"></script>
</body>
</html>
Создайте папку src и поместите файл с именем index.js в папку src, куда я импортирую три
import * as THREE from 'three';
Установка liveserver для запуска сервера:
npm install live-server -g
Запуск сервера:
live-server
Это дает мнеошибка:
Uncaught TypeError: Не удалось разрешить спецификатор модуля «три». Относительные ссылки должны начинаться с "/", "./" или "../".
Однако он работает с этим синтаксисом, предоставляя полный путь:
import * as THREE from '../node_modules/three/build/three.module.js';
Почему webpack не разрешает путь к моим node_modules?
Я также пытался создать файл webpack.config.js :
module.exports = {
resolve: {
modules: ['./node_modules']
}
};
Но с тем же результатом:
Uncaught TypeError: Не удалось разрешить спецификатор модуля «три». Относительные ссылки должны начинаться с "/", "./" или "../".
Любая подсказка очень ценится!
ОБНОВЛЕНИЕ:
Я пробовал с Babel для обработки ES6:
Установка:
npm install --save-dev @babel/core @babel/preset-env
npm install --save-dev babel-loader
Отредактировано y webpack.config.js согласнок этому: https://createapp.dev/webpack
const webpack = require('webpack');
const path = require('path');
const config = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
use: 'babel-loader',
exclude: /node_modules/
}
]
}
};
module.exports = config;
Добавлено .babelrc с:
{
"presets": [
"@babel/preset-env"
]
}
Но все равно безуспешно