diff --git a/build/webpack.release.js b/build/webpack.release.js new file mode 100644 index 0000000..3f58982 --- /dev/null +++ b/build/webpack.release.js @@ -0,0 +1,78 @@ +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') + +module.exports = { + entry: { + 'vue-chartjs': './src/index.js' + }, + output: { + filename: './dist/[name].js', + library: 'VueChartJs', + libraryTarget: 'umd' + }, + module: { + preLoaders: [ + { + test: /\.vue$/, + loader: 'eslint', + include: projectRoot, + exclude: /node_modules/ + }, + { + test: /\.js$/, + loader: 'eslint', + include: projectRoot, + exclude: /node_modules/ + } + ], + loaders: [ + { + test: /\.vue$/, + loader: 'vue' + }, + { + test: /\.js$/, + exclude: /node_modules/, + loader: 'babel' + }, + { + test: /\.css$/, + loader: cssLoader + }, + { + test: /\.s[a|c]ss$/, + loader: ExtractTextPlugin.extract('style-loader','css-loader!sass-loader') + } + ] + }, + eslint: { + formatter: require('eslint-friendly-formatter') + }, + babel: { + presets: ['es2015'], + plugins: ['transform-runtime'] + } +} + +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 + } + }), + new webpack.optimize.OccurenceOrderPlugin() + // new ExtractTextPlugin('build.css') + ] +} diff --git a/package.json b/package.json index ef0752a..de438c1 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "e2e": "node test/e2e/runner.js", "test": "npm run unit", "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs", + "release": "webpack --progress --hide-modules --config ./build/webpack.release.js", "prepublish": "node build/build.js" }, "dependencies": {