diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..b29aeba --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,3 @@ +current node +last 2 versions and > 2% +ie > 10 diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..de59089 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,16 @@ +const devPresets = ['@vue/babel-preset-app']; +const buildPresets = [ + [ + '@babel/preset-env', + // Config for @babel/preset-env + { + // Example: Always transpile optional chaining/nullish coalescing + // include: [ + // /(optional-chaining|nullish-coalescing)/ + // ], + }, + ], +]; +module.exports = { + presets: (process.env.NODE_ENV === 'development' ? devPresets : buildPresets), +}; diff --git a/build/rollup.config.js b/build/rollup.config.js new file mode 100644 index 0000000..dd41f12 --- /dev/null +++ b/build/rollup.config.js @@ -0,0 +1,172 @@ +// rollup.config.js +import fs from 'fs'; +import path from 'path'; +import vue from 'rollup-plugin-vue'; +import alias from '@rollup/plugin-alias'; +import commonjs from '@rollup/plugin-commonjs'; +import resolve from '@rollup/plugin-node-resolve'; +import replace from '@rollup/plugin-replace'; +import babel from '@rollup/plugin-babel'; +import PostCSS from 'rollup-plugin-postcss'; +import { terser } from 'rollup-plugin-terser'; +import minimist from 'minimist'; + +// Get browserslist config and remove ie from es build targets +const esbrowserslist = fs.readFileSync('./.browserslistrc') + .toString() + .split('\n') + .filter((entry) => entry && entry.substring(0, 2) !== 'ie'); + +// Extract babel preset-env config, to combine with esbrowserslist +const babelPresetEnvConfig = require('../babel.config') + .presets.filter((entry) => entry[0] === '@babel/preset-env')[0][1]; + +const argv = minimist(process.argv.slice(2)); + +const projectRoot = path.resolve(__dirname, '..'); + +const baseConfig = { + input: 'src/entry.js', + plugins: { + preVue: [ + alias({ + entries: [ + { + find: '@', + replacement: `${path.resolve(projectRoot, 'src')}`, + }, + ], + }), + ], + replace: { + 'process.env.NODE_ENV': JSON.stringify('production'), + }, + vue: { + preprocessStyles: true + }, + postVue: [ + resolve({ + extensions: ['.js', '.jsx', '.ts', '.tsx', '.vue'], + }), + // Process only ` diff --git a/src/components/Spinner.vue b/src/components/Spinner.vue index 25a8674..c8f7a17 100644 --- a/src/components/Spinner.vue +++ b/src/components/Spinner.vue @@ -1,102 +1,39 @@