119 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
const DEBUG = process.env.NODE_ENV !== 'production'
 | 
						|
const entry = ['./src/app.js']
 | 
						|
const path = require('path')
 | 
						|
const pkg = require('./package.json')
 | 
						|
const webpack = require('webpack')
 | 
						|
 | 
						|
module.exports = {
 | 
						|
    context: path.join(__dirname, './'),
 | 
						|
    devtool: DEBUG ? 'inline-source-map' : false,
 | 
						|
    entry: entry,
 | 
						|
    mode: DEBUG ? 'development' : 'production',
 | 
						|
    target: 'web',
 | 
						|
 | 
						|
    node: {
 | 
						|
        fs: 'empty'
 | 
						|
    },
 | 
						|
 | 
						|
    externals: {
 | 
						|
        '$': '$',
 | 
						|
        'jquery': 'jQuery',
 | 
						|
    },
 | 
						|
 | 
						|
    output: {
 | 
						|
    // filename: DEBUG ? 'app.js' : 'app-[hash].js'
 | 
						|
        filename: 'app.js',
 | 
						|
        library: 'App',
 | 
						|
        path: path.resolve(pkg.config.buildDir),
 | 
						|
        publicPath: DEBUG ? '/' : './',
 | 
						|
    },
 | 
						|
 | 
						|
    plugins: [
 | 
						|
        new webpack.optimize.OccurrenceOrderPlugin(),
 | 
						|
        new webpack.HotModuleReplacementPlugin(),
 | 
						|
 | 
						|
        new webpack.LoaderOptionsPlugin({
 | 
						|
            debug: DEBUG,
 | 
						|
        }),
 | 
						|
 | 
						|
        // Print on rebuild when watching; see
 | 
						|
        // https://github.com/webpack/webpack/issues/1499#issuecomment-155064216
 | 
						|
        function () {
 | 
						|
            this.plugin('watch-run', (watching, callback) => {
 | 
						|
                console.log('Begin compile at ' + new Date())
 | 
						|
                callback()
 | 
						|
            })
 | 
						|
        },
 | 
						|
 | 
						|
    ],
 | 
						|
 | 
						|
    module: {
 | 
						|
 | 
						|
        rules: [
 | 
						|
 | 
						|
            {
 | 
						|
                test: /\.tag\.pug$/,
 | 
						|
                loader: 'riot-tag-loader',
 | 
						|
                exclude: /node_modules/,
 | 
						|
                query: {
 | 
						|
                    hot: true,
 | 
						|
                    template: 'pug',
 | 
						|
                    type: 'es6',
 | 
						|
                },
 | 
						|
            },
 | 
						|
 | 
						|
            {
 | 
						|
                test: /\.tag$/,
 | 
						|
                loader: 'riot-tag-loader',
 | 
						|
                exclude: /node_modules/,
 | 
						|
                query: {
 | 
						|
                    hot: false,
 | 
						|
                    type: 'es6',
 | 
						|
                },
 | 
						|
            },
 | 
						|
 | 
						|
            {
 | 
						|
                test: /\.js$/,
 | 
						|
                loader: 'babel-loader',
 | 
						|
                exclude: /node_modules/,
 | 
						|
                query: {
 | 
						|
                    plugins: ['@babel/transform-runtime'],
 | 
						|
                    presets: ['@babel/preset-env'],
 | 
						|
                },
 | 
						|
            },
 | 
						|
 | 
						|
            {
 | 
						|
                test: /\.html$/,
 | 
						|
                loader: 'file-loader?name=[path][name].[ext]',
 | 
						|
                exclude: /node_modules/,
 | 
						|
            },
 | 
						|
 | 
						|
            {
 | 
						|
                test: /\.jpe?g$|\.svg$|\.png$/,
 | 
						|
                loader: 'file-loader?name=[path][name].[ext]',
 | 
						|
                exclude: /node_modules/,
 | 
						|
            },
 | 
						|
 | 
						|
            {
 | 
						|
                test: /\.json$/,
 | 
						|
                loader: 'json',
 | 
						|
                exclude: /node_modules/,
 | 
						|
            },
 | 
						|
 | 
						|
            {
 | 
						|
                test: /\.(otf|eot|svg|ttf|woff|woff2)(\?v=\d+\.\d+\.\d+)?$/,
 | 
						|
                loader: 'url?limit=8192&mimetype=application/font-woff',
 | 
						|
            },
 | 
						|
 | 
						|
            {
 | 
						|
                test: /\.json$/,
 | 
						|
                loader: 'json',
 | 
						|
                include: path.join(__dirname, 'node_modules', 'pixi.js'),
 | 
						|
            },
 | 
						|
 | 
						|
        ],
 | 
						|
 | 
						|
    },
 | 
						|
 | 
						|
}
 |