mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-16 06:18:42 +02:00
This may seem unnecessary (and odd to import CSS files into JS...), but this sets up the project for being able to keep the distributed (release) resources all together, as well as setting the stage for introducing something like SCSS.
85 lines
2.3 KiB
JavaScript
85 lines
2.3 KiB
JavaScript
var path = require('path');
|
|
var webpack = require('webpack');
|
|
var MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
|
|
module.exports = (env, argv) => ({
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
'process.env.NODE_ENV': argv.mode === 'development' ? "\"development\"" : "\"production\""
|
|
}),
|
|
// http://stackoverflow.com/questions/29080148/expose-jquery-to-real-window-object-with-webpack
|
|
new webpack.ProvidePlugin({
|
|
// Automtically detect jQuery and $ as free var in modules
|
|
// and inject the jquery library
|
|
// This is required by many jquery plugins
|
|
jquery: "jquery",
|
|
jQuery: "jquery",
|
|
$: "jquery"
|
|
}),
|
|
new MiniCssExtractPlugin({
|
|
filename: "[name].css",
|
|
chunkFilename: "[id].css"
|
|
})
|
|
],
|
|
target: "web",
|
|
entry: {
|
|
"dist/engine": "./src/engine.js",
|
|
"tests/tests": "./tests/index.js",
|
|
},
|
|
devtool: "source-map",
|
|
output: {
|
|
path: path.resolve(__dirname, "./"),
|
|
filename: "[name].bundle.js"
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.tsx?$/,
|
|
loader: 'ts-loader',
|
|
exclude: /node_modules/
|
|
},
|
|
{
|
|
test: /\.css$/,
|
|
use: [
|
|
MiniCssExtractPlugin.loader,
|
|
"css-loader"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
optimization: {
|
|
removeAvailableModules: true,
|
|
removeEmptyChunks: true,
|
|
mergeDuplicateChunks: true,
|
|
flagIncludedChunks: true,
|
|
occurrenceOrder: true,
|
|
sideEffects: true,
|
|
providedExports: true,
|
|
usedExports: true,
|
|
concatenateModules: false,
|
|
namedModules: false,
|
|
namedChunks: false,
|
|
minimize: argv.mode !== 'development',
|
|
portableRecords: true,
|
|
splitChunks: {
|
|
cacheGroups: {
|
|
vendor: {
|
|
test: /[\\/]node_modules[\\/]/,
|
|
name: 'dist/vendor',
|
|
chunks: 'all'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
devServer: {
|
|
publicPath: "/dist",
|
|
},
|
|
resolve: {
|
|
extensions: [
|
|
".tsx",
|
|
".ts",
|
|
".js"
|
|
]
|
|
}
|
|
});
|