mirror of https://github.com/IoTcat/sakura2.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.4 KiB
102 lines
2.4 KiB
const path = require('path'); |
|
const autoprefixer = require('autoprefixer'); |
|
const TerserPlugin = require('terser-webpack-plugin'); |
|
|
|
module.exports = [{ |
|
mode: "development", // "production" | "development" | "none" |
|
entry: { |
|
entry: ['./src/scss/index.scss', './src/ts/index.ts'] |
|
}, |
|
devtool: 'inline-source-map', |
|
output: { |
|
filename: 'bundle.js', |
|
path: path.resolve(__dirname, 'dist'), |
|
publicPath: '../dist/', |
|
}, |
|
devServer:{ |
|
contentBase: path.join(__dirname, 'src'), |
|
compress: false, // gzip |
|
port: 8080, |
|
publicPath: '/dist/' |
|
}, |
|
module: { |
|
rules: [{ |
|
test: /\.(png|jpg|gif|svg)$/, |
|
exclude: [ |
|
path.resolve(__dirname, './node_modules'), |
|
], |
|
use: { |
|
loader: 'file-loader', |
|
options: { |
|
name(file) { |
|
// if (process.env.NODE_ENV === 'development') { |
|
// return '[path][name].[ext]'; |
|
// } |
|
// return '[hash].[ext]'; |
|
return '[name].[ext]'; |
|
}, |
|
outputPath: 'images', |
|
}, |
|
}, |
|
}, |
|
{ |
|
test: /\.scss$/, |
|
use: [{ |
|
loader: 'file-loader', |
|
options: { |
|
name: 'bundle.css', |
|
}, |
|
}, |
|
{ |
|
loader: 'extract-loader' |
|
}, |
|
{ |
|
loader: 'css-loader' |
|
}, |
|
{ |
|
loader: 'postcss-loader', |
|
options: { |
|
plugins: () => [autoprefixer()] |
|
} |
|
}, |
|
// tooooooo slow! |
|
{ |
|
loader: 'sass-loader', |
|
options: { |
|
sourceMap: true, |
|
sassOptions: { |
|
includePaths: ['./node_modules'] |
|
}, |
|
} |
|
}, |
|
// source-map not supported in fast-sass-loader! |
|
// { |
|
// loader: 'fast-sass-loader', |
|
// options: { |
|
// includePaths: ['./node_modules'] |
|
// } |
|
// }, |
|
] |
|
}, |
|
{ |
|
test: /\.tsx?$/, |
|
use: [{ |
|
loader: 'babel-loader', |
|
query: { |
|
presets: ['@babel/preset-typescript'], |
|
}, |
|
}, ], |
|
exclude: /node_modules/ |
|
}, |
|
] |
|
}, |
|
resolve: { |
|
extensions: ['.tsx', '.ts', '.js'] |
|
}, |
|
optimization: { |
|
minimize: true, |
|
minimizer: [new TerserPlugin({ |
|
sourceMap: false, |
|
})], |
|
}, |
|
}]; |