|
@@ -1,13 +1,15 @@
|
|
|
var path = require('path');
|
|
|
-var webpack = require('webpack');
|
|
|
+var HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
|
var UpdateVersionPlugin = require('./updateVersionPlugin');
|
|
|
+
|
|
|
+var CopyPlugin = require('copy-webpack-plugin');
|
|
|
+var CleanWebpackPlugin = require('clean-webpack-plugin');
|
|
|
|
|
|
module.exports = {
|
|
|
- entry: './js/main.js',
|
|
|
- mode: 'development',
|
|
|
+ entry: path.resolve(__dirname, 'js/main.js'),
|
|
|
output: {
|
|
|
- path: path.resolve(__dirname, 'build'),
|
|
|
- filename: 'ivprog.bundle.js',
|
|
|
+ path: path.resolve(__dirname, 'build',"js"),
|
|
|
+ filename: '[name].[contenthash].js',
|
|
|
library: 'ivprogCore',
|
|
|
libraryTarget: 'umd'
|
|
|
},
|
|
@@ -38,14 +40,46 @@ module.exports = {
|
|
|
stats: {
|
|
|
colors: true
|
|
|
},
|
|
|
- plugins: [new UpdateVersionPlugin()],
|
|
|
-
|
|
|
+ plugins: [
|
|
|
+ new CleanWebpackPlugin({
|
|
|
+ cleanOnceBeforeBuildPatterns:[path.resolve(__dirname, 'build/**/*')],
|
|
|
+ watch: true
|
|
|
+ }),
|
|
|
+ new UpdateVersionPlugin(),
|
|
|
+ new HtmlWebpackPlugin({
|
|
|
+ template: 'templates/index.html',
|
|
|
+ filename: path.resolve(__dirname, 'build', 'index.html')
|
|
|
+ }),
|
|
|
+ new HtmlWebpackPlugin({
|
|
|
+ template: 'templates/runner.html',
|
|
|
+ filename: path.resolve(__dirname, 'build', 'runner.html')
|
|
|
+ }),
|
|
|
+
|
|
|
+ new CopyPlugin([
|
|
|
+ {from:"js/semantic/", to:path.resolve(__dirname, 'build/css')},
|
|
|
+ {from:"css/ivprog-visual-1.0.css", to:path.resolve(__dirname, 'build/css')},
|
|
|
+ {from:"css/ivprog-term.css", to:path.resolve(__dirname, 'build/css')},
|
|
|
+ {from:'js/jquery-3.3.1.min.js', to:path.resolve(__dirname, 'build/js')},
|
|
|
+ {from:'js/semantic/semantic.min.js', to:path.resolve(__dirname, 'build/js')},
|
|
|
+ {from:'js/semantic/semantic-buttons.js', to:path.resolve(__dirname, 'build/js')},
|
|
|
+ {from:'js/jquery-ui.js', to:path.resolve(__dirname, 'build/js')},
|
|
|
+ {from:'js/Sortable.js', to:path.resolve(__dirname, 'build/js')},
|
|
|
+ {from:'js/iassign-integration-functions.js', to:path.resolve(__dirname, 'build/js')},
|
|
|
+
|
|
|
+ {from:'runner.html', to:path.resolve(__dirname, 'build')},*/
|
|
|
+ ])
|
|
|
+ ],
|
|
|
+ optimization: {
|
|
|
splitChunks: {
|
|
|
chunks: 'all'
|
|
|
}
|
|
|
- },*/
|
|
|
+ },
|
|
|
devtool: 'source-map',
|
|
|
watchOptions: {
|
|
|
- ignored: path.resolve(__dirname, '.ima_version.json')
|
|
|
+ ignored: [
|
|
|
+ path.resolve(__dirname, '.ima_version.json'),
|
|
|
+ path.resolve(__dirname, 'index.html'),
|
|
|
+ path.resolve(__dirname, 'runner.html')
|
|
|
+ ]
|
|
|
}
|
|
|
};
|