UNPKG

monaca-lib

Version:

Monaca cloud and localkit API bindings for JavaScript

136 lines (118 loc) 2.94 kB
try { var path = require('path'); var webpack = require('webpack'); var HtmlWebpackPlugin = require('html-webpack-plugin'); var ExtractTextPlugin = require('extract-text-webpack-plugin'); var ProgressBarPlugin = require('progress-bar-webpack-plugin'); var cssnext = require('postcss-cssnext'); var postcssImport = require('postcss-import'); var postcssUrl = require('postcss-url'); } catch (e) { throw new Error('Missing Webpack Build Dependencies.'); } module.exports = { devtool: 'inline-source-map', context: __dirname, debug: true, cache: true, entry: { watch: ['webpack/hot/only-dev-server'], app: ['./src/main'], vendor: ['vue'] }, output: { path: path.join(__dirname, 'www'), filename: '[name].bundle.js', chunkFilename: '[name].chunk.js', publicPath: '/' }, resolve: { root: [ path.join(__dirname, 'src'), path.join(__dirname, 'node_modules') ], extensions: ['', '.js', '.vue', '.json', '.css', '.html', '.styl'], unsafeCache: true, alias: { vue:'vue/dist/vue.common.js' } }, module: { loaders: [{ test: /\.vue$/, loader: 'vue-loader' }, { test: /\.js$/, loader: 'babel', exclude: /node_modules/ }, { test: /\.html$/, loader: 'html' }, { test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)(\?\S*)?$/, loader: 'file?name=assets/[name].[hash].[ext]' }, { test: /\.css$/, include: [ path.join(__dirname, 'node_modules', 'onsenui', 'css-components-src', 'src'), path.join(__dirname, 'src') ], loader: ExtractTextPlugin.extract('style', 'css?importLoaders=1&-raw!postcss-loader') }, { test: /\.css$/, exclude: [ path.join(__dirname, 'node_modules', 'onsenui', 'css-components-src', 'src'), path.join(__dirname, 'src') ], loader: ExtractTextPlugin.extract('style', 'css?sourceMap') }, { test: /\.json$/, loader: 'json' }] }, vue: { loaders: { js: 'babel' } }, babel: { presets: [ 'babel-preset-es2015' ], }, postcss: function() { return [ postcssImport, postcssUrl, cssnext({ browsers: ['> 1%', 'last 2 versions', 'Firefox ESR', 'Opera 12.1'] }) ] }, plugins: [ new webpack.HotModuleReplacementPlugin(), new webpack.optimize.CommonsChunkPlugin({ name: ['app', 'vendor'] }), new ExtractTextPlugin('[name].css'), new HtmlWebpackPlugin({ template: 'src/public/index.html.ejs', chunksSortMode: 'dependency' }), new ProgressBarPlugin() ], resolveLoader: { root: [ path.join(__dirname, 'node_modules') ] }, devServer: { contentBase: './src/public', colors: true, inline: true, historyApiFallback: true, host: '0.0.0.0', stats: 'minimal', hot: true } };