mirror of
https://github.com/leaders-of-digital-9-task/dicom-viewer.git
synced 2024-11-25 03:33:44 +03:00
add-template
This commit is contained in:
parent
ce7f8e4e67
commit
31fbe19e99
|
@ -1,3 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
"extends": "airbnb-base"
|
|
||||||
};
|
|
35
.github/ISSUE_TEMPLATE/bug_report.md
vendored
35
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -1,35 +0,0 @@
|
||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Describe the bug**
|
|
||||||
A clear and concise description of what the bug is.
|
|
||||||
|
|
||||||
**To Reproduce**
|
|
||||||
Steps to reproduce the behavior:
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. See error
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
**Screenshots**
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
|
||||||
|
|
||||||
**Desktop (please complete the following information):**
|
|
||||||
- OS: [e.g. iOS]
|
|
||||||
- Browser [e.g. chrome, safari]
|
|
||||||
- Version [e.g. 22]
|
|
||||||
|
|
||||||
**Smartphone (please complete the following information):**
|
|
||||||
- Device: [e.g. iPhone6]
|
|
||||||
- OS: [e.g. iOS8.1]
|
|
||||||
- Browser [e.g. stock browser, safari]
|
|
||||||
- Version [e.g. 22]
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context about the problem here.
|
|
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
49
.github/dependabot.yml
vendored
49
.github/dependabot.yml
vendored
|
@ -1,49 +0,0 @@
|
||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: npm
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: daily
|
|
||||||
time: "10:00"
|
|
||||||
open-pull-requests-limit: 10
|
|
||||||
ignore:
|
|
||||||
- dependency-name: "@babel/core"
|
|
||||||
versions:
|
|
||||||
- 7.12.10
|
|
||||||
- 7.12.13
|
|
||||||
- 7.12.16
|
|
||||||
- 7.12.17
|
|
||||||
- 7.13.1
|
|
||||||
- 7.13.10
|
|
||||||
- 7.13.13
|
|
||||||
- 7.13.14
|
|
||||||
- 7.13.15
|
|
||||||
- 7.13.8
|
|
||||||
- dependency-name: "@babel/cli"
|
|
||||||
versions:
|
|
||||||
- 7.12.10
|
|
||||||
- 7.12.13
|
|
||||||
- 7.12.16
|
|
||||||
- 7.12.17
|
|
||||||
- 7.13.0
|
|
||||||
- 7.13.10
|
|
||||||
- 7.13.14
|
|
||||||
- dependency-name: "@babel/preset-env"
|
|
||||||
versions:
|
|
||||||
- 7.12.11
|
|
||||||
- 7.12.13
|
|
||||||
- 7.12.16
|
|
||||||
- 7.12.17
|
|
||||||
- 7.13.0
|
|
||||||
- 7.13.10
|
|
||||||
- 7.13.12
|
|
||||||
- 7.13.5
|
|
||||||
- 7.13.8
|
|
||||||
- 7.13.9
|
|
||||||
- dependency-name: webpack-cli
|
|
||||||
versions:
|
|
||||||
- 4.4.0
|
|
||||||
- 4.5.0
|
|
||||||
- dependency-name: pa11y-ci
|
|
||||||
versions:
|
|
||||||
- 2.4.0
|
|
61
.gitignore
vendored
61
.gitignore
vendored
|
@ -1,61 +0,0 @@
|
||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
||||||
# Runtime data
|
|
||||||
pids
|
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
||||||
lib-cov
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# nyc test coverage
|
|
||||||
.nyc_output
|
|
||||||
|
|
||||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
|
||||||
.grunt
|
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
|
||||||
bower_components
|
|
||||||
|
|
||||||
# node-waf configuration
|
|
||||||
.lock-wscript
|
|
||||||
|
|
||||||
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
|
||||||
build/Release
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules/
|
|
||||||
jspm_packages/
|
|
||||||
|
|
||||||
# Typescript v1 declaration files
|
|
||||||
typings/
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
|
||||||
.npm
|
|
||||||
|
|
||||||
# Optional eslint cache
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Optional REPL history
|
|
||||||
.node_repl_history
|
|
||||||
|
|
||||||
# Output of 'npm pack'
|
|
||||||
*.tgz
|
|
||||||
|
|
||||||
# Yarn Integrity file
|
|
||||||
.yarn-integrity
|
|
||||||
|
|
||||||
# dotenv environment variables file
|
|
||||||
.env
|
|
||||||
|
|
||||||
# gitignore dist folder
|
|
||||||
dist
|
|
7
.pa11yci
7
.pa11yci
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"defaults": {
|
|
||||||
"chromeLaunchConfig": {
|
|
||||||
"args": ["--no-sandbox"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
"extends": "stylelint-config-standard",
|
|
||||||
}
|
|
22
.travis.yml
22
.travis.yml
|
@ -1,22 +0,0 @@
|
||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- node
|
|
||||||
- lts/*
|
|
||||||
install:
|
|
||||||
- npm install
|
|
||||||
before_script:
|
|
||||||
- npm rebuild node-sass
|
|
||||||
script:
|
|
||||||
- npm run lint:styles
|
|
||||||
- npm run lint:js
|
|
||||||
- npm run lint:html
|
|
||||||
- npm run build
|
|
||||||
deploy:
|
|
||||||
provider: pages
|
|
||||||
skip-cleanup: true
|
|
||||||
github-token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable
|
|
||||||
keep-history: true
|
|
||||||
local-dir: dist
|
|
||||||
on:
|
|
||||||
branch: master
|
|
||||||
node: 'lts/*'
|
|
21
CHANGELOG.md
21
CHANGELOG.md
|
@ -1,21 +0,0 @@
|
||||||
# Changelog
|
|
||||||
All notable changes to this project will be documented in this file.
|
|
||||||
|
|
||||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
||||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
||||||
|
|
||||||
## [1.1.0] - 2018-09-08
|
|
||||||
### Added
|
|
||||||
- Linting for scripts, styling, and a11y
|
|
||||||
- Travis CI build and deployment to GitHub Pages
|
|
||||||
### Changed
|
|
||||||
- Upgraded Webpack version to Webpack 4
|
|
||||||
- Cleaned up Webpack config code
|
|
||||||
|
|
||||||
## [1.0.0] - 2018-01-18
|
|
||||||
### Added
|
|
||||||
- Working webpack setup
|
|
||||||
- Supports multiple HTML pages
|
|
||||||
- JS transpiled down from ES6+ to ES5 and minified
|
|
||||||
- SCSS transpiled down to CSS, prefixed, and minified
|
|
||||||
- Static assets copied over
|
|
21
LICENSE
21
LICENSE
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2018 Erick Zhao
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
39
README.md
39
README.md
|
@ -1,39 +0,0 @@
|
||||||
# 🚀 Static HTML Webpack Boilerplate
|
|
||||||
[![GitHub version](https://badge.fury.io/gh/erickzhao%2Fstatic-html-webpack-boilerplate.svg)](https://badge.fury.io/gh/erickzhao%2Fstatic-html-webpack-boilerplate)
|
|
||||||
[![Build Status](https://api.travis-ci.org/erickzhao/static-html-webpack-boilerplate.svg?branch=master)](https://travis-ci.org/erickzhao/static-html-webpack-boilerplate)
|
|
||||||
[![Dev Dependencies](https://david-dm.org/erickzhao/static-html-webpack-boilerplate/dev-status.svg)](https://david-dm.org/erickzhao/static-html-webpack-boilerplate?type=dev)
|
|
||||||
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/a81c78b2255343a2a1c86abb564431a9)](https://app.codacy.com/app/erickzhao/static-html-webpack-boilerplate?utm_source=github.com&utm_medium=referral&utm_content=erickzhao/static-html-webpack-boilerplate&utm_campaign=Badge_Grade_Dashboard)
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<img width="200" height="200" src="https://i.imgur.com/y8m5pkQ.png">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
Enjoy hand-writing your HTML? Keep it old-school with modern build tools. This boilerplate setup makes it easier to write your own styling, scripts, and mark-up.
|
|
||||||
|
|
||||||
## ✨ Features
|
|
||||||
|
|
||||||
- Write SCSS and modern JavaScript code in `src` and build minified, transpiled code for production in `dist`
|
|
||||||
- Continuous integration with linting tests and deploying to `gh-pages`
|
|
||||||
- Live reloading with webpack-dev-server
|
|
||||||
- ES6+ to ES5 transpilation, bundling, and minification
|
|
||||||
- SCSS to CSS transpilation, bundling, autoprefixing, and minification
|
|
||||||
- Automatic copying of HTML and static assets from `src` to `dist` folders
|
|
||||||
- Linting for styles and scripts
|
|
||||||
|
|
||||||
## 🛠 Usage
|
|
||||||
|
|
||||||
- Use this template on GitHub or download the latest release from the [Releases page](https://github.com/erickzhao/static-html-webpack-boilerplate/releases).
|
|
||||||
- Write all your ES2015+ Javascript code in `src/js` and SCSS styling in `src/style`. Store static assets in `src/static`. Organize HTML files the way you like.
|
|
||||||
- Available commands:
|
|
||||||
- `npm run build`: Build files to the `dist` folder. Transpiles down to ES5 and bundles all JS into `app.bundle.js`. Transpiles SCSS to CSS and adds prefixing into `style.bundle.css`. Copies static assets and HTML over, and bundled CSS and JS gets added to HTML file.
|
|
||||||
- `npm run start:dev`: Run `webpack-dev-server` at `localhost:9000`. Includes live reloading on any Javascript/SCSS/HTML changes.
|
|
||||||
- `npm run start`: Builds files and runs a local production server on `localhost:8080` with `http-server`.
|
|
||||||
- `npm run run lint:js`: Lints JS with ESLint.
|
|
||||||
- `npm run lint:styles`: Lints SCSS stylesheets with stylelint.
|
|
||||||
- `npm run lint:html`: Lints HTML for a11y issues using pa11y.
|
|
||||||
|
|
||||||
## 🔄 Continuous Integration
|
|
||||||
|
|
||||||
This boilerplate contains integration with [Travis CI](https://travis-ci.org/). The build system runs all linting scripts and deploys to GitHub pages upon push to the `master` branch. However, note that this deployment flow only works for Project Pages, as User and Organization pages [only support the master branch flow](https://help.github.com/articles/user-organization-and-project-pages/).
|
|
||||||
|
|
||||||
For more information on how to set up alternative deployment processes, check out the [Travis CI documentation on deployment](https://docs.travis-ci.com/user/deployment). The service can deploy to dozens of cloud providers, including Heroku, AWS, and Firebase.
|
|
18
index.html
Normal file
18
index.html
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="dwv">
|
||||||
|
<div id="layerGroup0"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="range" id="sliceRange" value="0">
|
||||||
|
<script src="dwv.js"></script>
|
||||||
|
<script src="index.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
36
index.js
Normal file
36
index.js
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
// create the dwv app
|
||||||
|
var app = new dwv.App();
|
||||||
|
// initialise with the id of the container div
|
||||||
|
app.init({
|
||||||
|
dataViewConfigs: {'*': [{divId: 'layerGroup0'}]},
|
||||||
|
tools: {
|
||||||
|
Scroll: {}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// activate tool once done loading
|
||||||
|
app.addEventListener('load', function () {
|
||||||
|
app.setTool('Scroll');
|
||||||
|
});
|
||||||
|
// load dicom data
|
||||||
|
app.loadURLs(['https://raw.githubusercontent.com/ivmartel/dwv/master/tests/data/bbmri-53323851.dcm','https://raw.githubusercontent.com/ivmartel/dwv/master/tests/data/bbmri-53323707.dcm','https://raw.githubusercontent.com/ivmartel/dwv/master/tests/data/bbmri-53323563.dcm']);
|
||||||
|
|
||||||
|
//
|
||||||
|
var range = document.getElementById('sliceRange');
|
||||||
|
range.min = 0;
|
||||||
|
app.addEventListener('loadend', function () {
|
||||||
|
range.max = app.getImage(0).getGeometry().getSize().get(2) - 1;
|
||||||
|
});
|
||||||
|
app.addEventListener('slicechange', function () {
|
||||||
|
// update slider on slice change (for ex via mouse wheel)
|
||||||
|
var lg = app.getLayerGroupById(0);
|
||||||
|
var vc = lg.getActiveViewLayer().getViewController();
|
||||||
|
range.value = vc.getCurrentPosition().k;
|
||||||
|
});
|
||||||
|
range.oninput = function () {
|
||||||
|
var lg = app.getLayerGroupById(0);
|
||||||
|
var vc = lg.getActiveViewLayer().getViewController();
|
||||||
|
var index = vc.getCurrentIndex();
|
||||||
|
var values = index.getValues();
|
||||||
|
values[2] = this.value;
|
||||||
|
vc.setCurrentIndex(new dwv.math.Index(values));
|
||||||
|
}
|
16377
package-lock.json
generated
16377
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
56
package.json
56
package.json
|
@ -1,56 +0,0 @@
|
||||||
{
|
|
||||||
"name": "static-html-webpack-boilerplate",
|
|
||||||
"version": "1.1.1",
|
|
||||||
"description": "Modern tooling for old-school static webpage development",
|
|
||||||
"main": "index.js",
|
|
||||||
"scripts": {
|
|
||||||
"build": "webpack --config webpack.config.prod.js",
|
|
||||||
"lint:js": "./node_modules/.bin/eslint src/js/*.js",
|
|
||||||
"lint:styles": "stylelint \"src/**/*.scss\"",
|
|
||||||
"lint:html": "pa11y-ci ./src/**/*.html",
|
|
||||||
"start:dev": "webpack-dev-server --config webpack.config.dev.js",
|
|
||||||
"start": "webpack --config webpack.config.prod.js && http-server ./dist -o"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/erickzhao/static-html-webpack-boilerplate.git"
|
|
||||||
},
|
|
||||||
"author": "erick zhao",
|
|
||||||
"license": "ISC",
|
|
||||||
"devDependencies": {
|
|
||||||
"@babel/cli": "^7.7.4",
|
|
||||||
"@babel/core": "^7.8.6",
|
|
||||||
"@babel/preset-env": "^7.7.4",
|
|
||||||
"autoprefixer": "^9.1.5",
|
|
||||||
"babel-loader": "^8.1.0",
|
|
||||||
"clean-webpack-plugin": "^3.0.0",
|
|
||||||
"copy-webpack-plugin": "^5.1.1",
|
|
||||||
"css-loader": "^3.4.2",
|
|
||||||
"cssnano": "^4.1.0",
|
|
||||||
"eslint": "^5.5.0",
|
|
||||||
"eslint-config-airbnb-base": "^13.1.0",
|
|
||||||
"eslint-plugin-import": "^2.20.2",
|
|
||||||
"file-loader": "^5.0.2",
|
|
||||||
"glob": "^7.1.6",
|
|
||||||
"html-webpack-plugin": "^3.0.0",
|
|
||||||
"http-server": "^0.12.1",
|
|
||||||
"mini-css-extract-plugin": "^0.9.0",
|
|
||||||
"node-sass": "^4.13.1",
|
|
||||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
|
||||||
"pa11y-ci": "^2.1.1",
|
|
||||||
"postcss-loader": "^3.0.0",
|
|
||||||
"raw-loader": "^4.0.1",
|
|
||||||
"sass-loader": "^8.0.2",
|
|
||||||
"style-loader": "^1.0.1",
|
|
||||||
"stylelint": "^13.6.1",
|
|
||||||
"stylelint-config-standard": "^19.0.0",
|
|
||||||
"webpack": "^4.44.0",
|
|
||||||
"webpack-cli": "^3.1.0",
|
|
||||||
"webpack-dev-server": "^3.9.0",
|
|
||||||
"webpack-merge": "^4.2.2"
|
|
||||||
},
|
|
||||||
"browserslist": [
|
|
||||||
"> 1%",
|
|
||||||
"last 2 versions"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
||||||
const autoprefixer = require('autoprefixer');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
plugins: [autoprefixer],
|
|
||||||
};
|
|
|
@ -1,14 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Static HTML Site Boilerplate</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h1>Hello Static HTML!</h1>
|
|
||||||
<a href="/page.html">Link to my other page</a>
|
|
||||||
<img src="/static/tail.png" alt="code"/>
|
|
||||||
</body>
|
|
|
@ -1,3 +0,0 @@
|
||||||
if (module.hot) {
|
|
||||||
module.hot.accept();
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Static HTML Site Boilerplate</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h1>My other page</h1>
|
|
||||||
<a href="/index.html">Back to home</a>
|
|
||||||
</body>
|
|
Binary file not shown.
Before Width: | Height: | Size: 387 KiB |
|
@ -1,9 +0,0 @@
|
||||||
body {
|
|
||||||
font-family: 'Helvetica Neue', sans-serif;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
display: block;
|
|
||||||
margin: 50px auto;
|
|
||||||
}
|
|
|
@ -1,69 +0,0 @@
|
||||||
const glob = require('glob');
|
|
||||||
const path = require('path');
|
|
||||||
|
|
||||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
||||||
const HTMLWebpackPlugin = require('html-webpack-plugin');
|
|
||||||
|
|
||||||
const generateHTMLPlugins = () => glob.sync('./src/**/*.html').map(
|
|
||||||
dir => new HTMLWebpackPlugin({
|
|
||||||
filename: path.basename(dir), // Output
|
|
||||||
template: dir, // Input
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
node: {
|
|
||||||
fs: 'empty',
|
|
||||||
},
|
|
||||||
entry: ['./src/js/app.js', './src/style/main.scss'],
|
|
||||||
output: {
|
|
||||||
path: path.resolve(__dirname, 'dist'),
|
|
||||||
filename: 'app.bundle.js',
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
test: /\.js$/,
|
|
||||||
loader: 'babel-loader',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.html$/,
|
|
||||||
loader: 'raw-loader',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(pdf|gif|png|jpe?g|svg)$/,
|
|
||||||
use: [
|
|
||||||
{
|
|
||||||
loader: 'file-loader',
|
|
||||||
options: {
|
|
||||||
outputPath: 'static/',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
|
|
||||||
use: [{
|
|
||||||
loader: 'file-loader',
|
|
||||||
options: {
|
|
||||||
name: '[name].[ext]',
|
|
||||||
outputPath: 'fonts/',
|
|
||||||
},
|
|
||||||
}],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new CopyWebpackPlugin([
|
|
||||||
{
|
|
||||||
from: './src/static/',
|
|
||||||
to: './static/',
|
|
||||||
},
|
|
||||||
]),
|
|
||||||
...generateHTMLPlugins(),
|
|
||||||
],
|
|
||||||
stats: {
|
|
||||||
colors: true,
|
|
||||||
},
|
|
||||||
devtool: 'source-map',
|
|
||||||
};
|
|
|
@ -1,24 +0,0 @@
|
||||||
const webpack = require('webpack');
|
|
||||||
const merge = require('webpack-merge');
|
|
||||||
const common = require('./webpack.config.common.js');
|
|
||||||
|
|
||||||
module.exports = merge(common, {
|
|
||||||
mode: 'development',
|
|
||||||
devServer: {
|
|
||||||
contentBase: 'src',
|
|
||||||
watchContentBase: true,
|
|
||||||
hot: true,
|
|
||||||
open: true,
|
|
||||||
port: process.env.PORT || 9000,
|
|
||||||
host: process.env.HOST || 'localhost',
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
test: /\.(sass|scss)$/,
|
|
||||||
use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader'],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
plugins: [new webpack.HotModuleReplacementPlugin()],
|
|
||||||
});
|
|
|
@ -1,43 +0,0 @@
|
||||||
const cssnano = require('cssnano');
|
|
||||||
const merge = require('webpack-merge');
|
|
||||||
|
|
||||||
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
|
||||||
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
|
|
||||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
||||||
|
|
||||||
const common = require('./webpack.config.common.js');
|
|
||||||
|
|
||||||
module.exports = merge(common, {
|
|
||||||
mode: 'production',
|
|
||||||
optimization: {
|
|
||||||
minimize: true,
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
test: /\.(sass|scss)$/,
|
|
||||||
use: [
|
|
||||||
{
|
|
||||||
loader: MiniCssExtractPlugin.loader,
|
|
||||||
},
|
|
||||||
'css-loader',
|
|
||||||
'postcss-loader',
|
|
||||||
'sass-loader',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new CleanWebpackPlugin(),
|
|
||||||
new MiniCssExtractPlugin({
|
|
||||||
filename: '[name].css',
|
|
||||||
chunkFilename: '[id].css',
|
|
||||||
}),
|
|
||||||
new OptimizeCssAssetsPlugin({
|
|
||||||
assetNameRegExp: /\.css$/g,
|
|
||||||
cssProcessor: cssnano,
|
|
||||||
cssProcessorOptions: { discardComments: { removeAll: true } },
|
|
||||||
canPrint: true,
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
});
|
|
Loading…
Reference in New Issue
Block a user