73 lines
1.7 KiB
JavaScript
73 lines
1.7 KiB
JavaScript
|
var path = require("path");
|
||
|
var webpack = require("webpack");
|
||
|
|
||
|
|
||
|
module.exports = function(env) {
|
||
|
env.NODE_ENV = (env.production) ? 'production' : 'development';
|
||
|
process.env.NODE_ENV = env.NODE_ENV;
|
||
|
|
||
|
const isProduction = (env.NODE_ENV === 'production');
|
||
|
|
||
|
return {
|
||
|
"entry": "./src/js/Main.jsx",
|
||
|
"mode": env.NODE_ENV,
|
||
|
"output": {
|
||
|
"path": path.resolve("./dist/js"),
|
||
|
"filename": "Aether.js"
|
||
|
},
|
||
|
"module": {
|
||
|
"rules": [
|
||
|
{
|
||
|
"test": /\.(js|jsx)$/,
|
||
|
"use": [
|
||
|
"babel-loader",
|
||
|
"eslint-loader"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"test": /\.(scss|sass)$/,
|
||
|
"use": [
|
||
|
{
|
||
|
"loader": "style-loader"
|
||
|
},
|
||
|
{
|
||
|
"loader": "css-loader",
|
||
|
"options": {
|
||
|
"url": false,
|
||
|
"sourceMap": !isProduction,
|
||
|
"minimize": isProduction
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"loader": "sass-loader",
|
||
|
"options": {
|
||
|
"sourceMap": !isProduction
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"test": /\.svg$/,
|
||
|
"use": [{
|
||
|
"loader": "svg-inline-loader",
|
||
|
"options": {
|
||
|
"removeTags": true
|
||
|
}
|
||
|
}]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"devtool": (isProduction) ? 'source-map' : 'eval-source-map',
|
||
|
"plugins": [
|
||
|
new webpack.DefinePlugin({
|
||
|
"process.env.NODE_ENV": JSON.stringify(env.NODE_ENV)
|
||
|
})
|
||
|
],
|
||
|
"resolve": {
|
||
|
"extensions": [ ".js", ".min.js", ".jsx" ],
|
||
|
"mainFiles": [ 'index', 'Main' ],
|
||
|
"modules": [ "./dist/js", "./node_modules", "./src", "./src/js" ]
|
||
|
}
|
||
|
};
|
||
|
};
|