UNPKG

@icanvas/webpack

Version:

这是icanvas的默认webpack打包配置

58 lines (56 loc) 1.86 kB
const path = require('path'); const webpack = require('webpack'); const merge = require('webpack-merge'); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = (ENV, Config) => { if (process.env.npm_config_debug) console.log('配置', ENV, Config); const BasePath = process.cwd(); return merge( require('./libs/base.js')(ENV, Config), require('./libs/define.js')(ENV, Config), { plugins: [ new webpack.DefinePlugin({ 'ENV.LocalResource': webpack.DefinePlugin.runtimeValue(function() { return JSON.stringify(require('./utils/p2j.js')('./resource/local')); }, true), 'ENV.RemoteResource': webpack.DefinePlugin.runtimeValue(function() { return JSON.stringify(require('./utils/p2j.js')('./resource/remote')); }, true), }), ], }, require('./libs/name.js')(ENV, Config), require('./libs/zip.js')(ENV, Config), require('./libs/resource.js')(ENV, Config, require('./utils/p2j.js')('./resource/remote')), require('./libs/wxgame.js')(ENV, Config), { output: { filename: '[name]', path: path.resolve(BasePath, '..', ENV.target), globalObject: 'this', }, entry: (function(OpenDataEntry, Res = {}) { Res['game.js'] = path.resolve(BasePath, 'src', 'index.js'); if (OpenDataEntry) Res[OpenDataEntry + '/index.js'] = path.resolve(BasePath, 'src.open', 'index.js'); return Res; })(require('./utils/attr.js')(Config, 'game.json', 'openDataContext')), devServer: { contentBase: path.resolve(BasePath, '..', ENV.target), host: '0.0.0.0', //可以通过localhost访问 inline: true, hot: true, }, plugins: Config.core == 'web' ? [ new HtmlWebpackPlugin({ filename: 'index.html', template: path.resolve(__dirname, 'index.ejs'), chunks: ['game.js'], }), ] : [], }, ); };