// var vue = require('vue-loader') var path = require('path') var webpack = require('webpack') var ExtractTextPlugin = require('extract-text-webpack-plugin') var projectRoot = path.resolve(__dirname, '../') var cssLoader = ExtractTextPlugin.extract('style-loader', 'css-loader') const npmCfg = require('../package.json') const vueLoaderConfig = require('./vue-loader.conf') var banner = [ npmCfg.name + ' v' + npmCfg.version, '(c) ' + (new Date().getFullYear()) + ' ' + npmCfg.author, npmCfg.homepage ].join('\n') function resolve (dir) { return path.join(__dirname, '..', dir) } module.exports = { entry: { 'vue-chartjs': './src/index.js' }, output: { filename: './dist/[name].full.js', library: 'VueChartJs', libraryTarget: 'umd', umdNamedDefine: true }, resolve: { extensions: ['.js', '.vue', '.json'], alias: { 'vue$': 'vue/dist/vue.esm.js', '@': resolve('src') } }, module: { rules: [ { test: /\.(js|vue)$/, loader: 'eslint-loader', enforce: 'pre', include: [resolve('src'), resolve('test')], options: { formatter: require('eslint-friendly-formatter') } }, { test: /\.vue$/, loader: 'vue-loader', options: vueLoaderConfig }, { test: /\.js$/, loader: 'babel-loader', include: [resolve('src'), resolve('test')] }, { test: /\.css$/, loader: cssLoader }, { test: /\.s[a|c]ss$/, loader: ExtractTextPlugin.extract('style-loader', 'css-loader!sass-loader') }, { test: /\.json$/, loader: 'json-loader' } ] }, plugins: [ new webpack.BannerPlugin(banner) ] } if (process.env.NODE_ENV === 'production') { delete module.exports.devtool module.exports.plugins = [ new webpack.DefinePlugin({ 'process.env': { NODE_ENV: '"production"' } }), new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false } }) ] }