diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..a10e4b6 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["stage-3"] +} \ No newline at end of file diff --git a/build/dev.conf.js b/build/dev.conf.js new file mode 100644 index 0000000..cfc383e --- /dev/null +++ b/build/dev.conf.js @@ -0,0 +1,72 @@ +'use strict' + +const path = require('path') +const pkg = require('../package.json') +const webpack = require('webpack') + +const CopyWebpackPlugin = require('copy-webpack-plugin') + +module.exports = { + context: path.resolve(__dirname, '../'), + + entry: { + app: './src/main.js' + }, + + output: { + path: path.resolve(__dirname, ".."), + filename: pkg.module + }, + + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'vue$': 'vue/dist/vue.esm.js', + '@': path.resolve('src'), + } + }, + + module: { + rules: [ + { + test: /\.vue$/, + loader: 'vue-loader' + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [path.resolve('src')] + } + ] + }, + + devtool: 'eval-source-map', + + devServer: { + contentBase: path.resolve(__dirname, "..", "demo"), + compress: true, + port: 9000, + publicPath: '/', + open: true, + hot: true, + watchOptions: { + poll: false + }, + lazy: false + }, + + plugins: [ + new webpack.DefinePlugin({ + 'process.env': '"development"' + }), + new webpack.HotModuleReplacementPlugin(), + new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. + new webpack.NoEmitOnErrorsPlugin(), + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../dist'), + to: 'dist', + ignore: ['.*'] + }]) + ] +} diff --git a/build/prod.conf.js b/build/prod.conf.js new file mode 100644 index 0000000..35fe05c --- /dev/null +++ b/build/prod.conf.js @@ -0,0 +1,56 @@ +'use strict' + +const path = require('path') +const pkg = require('../package.json') +const webpack = require('webpack') +const UglifyJsPlugin = require('uglifyjs-webpack-plugin') + +module.exports = { + context: path.resolve(__dirname, '../'), + + entry: { + app: './src/main.js' + }, + + output: { + path: path.resolve(__dirname, ".."), + filename: pkg.module + }, + + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'vue$': 'vue/dist/vue.esm.js', + '@': path.resolve('src'), + } + }, + + module: { + rules: [ + { + test: /\.vue$/, + loader: 'vue-loader' + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [path.resolve('src')] + } + ] + }, + + plugins: [ + new webpack.DefinePlugin({ + 'process.env': '"production"' + }), + new UglifyJsPlugin({ + uglifyOptions: { + compress: { + warnings: false + } + }, + sourceMap: false , + parallel: true + }) + ] +} diff --git a/demo/vue.js b/demo/dist/vue.js similarity index 100% rename from demo/vue.js rename to demo/dist/vue.js diff --git a/demo/index.html b/demo/index.html index ef0c0f8..8f9d5a4 100644 --- a/demo/index.html +++ b/demo/index.html @@ -17,8 +17,9 @@
- - + + + - - - - - - - -