A starter project for using Three.js, TypeScript, SCSS and Webpack.
- Webpack 5 + HMR
- TypeScript + Three.js
- SCSS + Autoprefixing
Get up and running with these simple steps:
- Clone the project
- Run
npm install
- Run
npm run dev
Optional configuration for the project can be done in the following files below.
Open env.config.js and you will see the default configuration for the project.
Config | Description |
---|---|
.browerslistrc |
Open .browserslist to configure Browser support for TypeScript + SCSS compiliation. Read more here about Browerslist. Defaults are set for last 2 versions, > 1% and IE 11. |
outputConfig.destPath |
The folder in which you want your app to compile to. By default this is dist . |
entryConfig |
Webpack Entry points, by default this will look for the TypeScript + SCSS entry point files. More info on Entry points here |
copyPluginPatterns.patterns |
Configure folders you want copied over when compiling your app. Useful to copy over entire folder structures of images or fonts. |
devServer |
Configure the Webpack development server. Enable https , specify a particular port , or host . More information on these options here |
scssConfig.destFileName |
Specify the output for your css. E.g css/app.css |
terserPluginConfig |
Full Terser config can be found here. |
Here's an example of the default generated output to our dist
folder.
- index.html
-- js
-- css
-- fonts
---- some-font-file.woff
-- images
---- path-to-example-image.jpg
- By default, fonts and images are copied to the
dist
folder. - To include a reference to an image or font, it should be relative to where your css would output.
For example:
stylesheets/some-folder/some-file-somewhere.scss
.example {
background-image: url("../images/path-to-image-example.jpg");
}
@font-face {
font-family: "Example-font";
src: url("../fonts/some-font-file.woff");
}
Would output to the folder css/app.css
- index.html
-- js
-- css
---- app.css
-- fonts
---- some-font-file.woff
-- images
---- path-to-example-image.jpg
npm install
npm run dev
Note: This will compile to a dist
folder.
npm run build
- Three.js - Three.js is a cross-browser JavaScript library and application programming interface used to create and display animated 3D computer graphics in a web browser using WebGL.
- TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript.
- Webpack 5 - App bundler for JavaScript.
- SCSS - Preprocessor for SCSS to CSS.
This project is licensed under the MIT License - see the LICENSE.md file for details