diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..54f49e3 --- /dev/null +++ b/.babelrc @@ -0,0 +1,9 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "transform-vue-jsx", + "transform-object-rest-spread" + ] +} diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..6495db7 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +10.3.0 \ No newline at end of file diff --git a/build/webpack.config.js b/build/webpack.config.js new file mode 100644 index 0000000..de3c567 --- /dev/null +++ b/build/webpack.config.js @@ -0,0 +1,69 @@ +const path = require('path'); +const webpack = require('webpack') +const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; + +module.exports = { + entry: './lib/index.js', + output: { + path: path.join(__dirname, '../dist'), + filename: 'vue-json-viewer.js', + libraryTarget: 'umd', + library: 'JsonView' + }, + resolve: { + extensions: ['.js', '.vue'], + modules: [ + 'node_modules' + ] + }, + externals: { + vue: 'vue' + }, + module: { + rules: [ + { + test: /\.js$/, + loader: 'babel-loader', + exclude: /node_modules/ + }, + { + test: /\.css$/, + use: ['vue-style-loader', 'css-loader', 'autoprefixer-loader'] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: 'img/[name].[ext]' + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: 'fonts/[name].[ext]' + } + }, + { + test: /\.vue$/, + use: [{ + loader: 'vue-loader' + }] + } + ] + }, + plugins: [ + new webpack.optimize.UglifyJsPlugin({ + parallel: true, + uglifyOptions: { + compress: { + warnings: false + }, + comments: false + } + }), + // new BundleAnalyzerPlugin() + ] +} diff --git a/example/app.js b/example/app.js index da18501..221b1fe 100644 --- a/example/app.js +++ b/example/app.js @@ -1,10 +1,24 @@ import Vue from 'vue' -import JsonViewer from '../lib' +import JsonViewer from '../dist/vue-json-viewer' Vue.use(JsonViewer) new Vue({ el: '#app', + render() { + return ( +