提交 63b5f527 编写于 作者: K Kael

chore(build): separate rollup builds, standalone minify css

上级 1fa2da06
const cssnano = require('cssnano')
const postcss = require('postcss')
const terser = require('terser')
const fs = require('fs')
const target = process.env.TARGET || 'production'
function minifyCss () {
fs.readFile('../dist/vuetify.css', (err, css) => {
if (err) return console.error(err.message)
postcss([cssnano])
.process(css, { from: 'dist/vuetify.css', to: 'dist/vuetify.min.css' })
.then(result => {
fs.writeFile('../dist.vuetify.min.css', result.css, () => true)
})
})
}
function minifyJs () {
fs.readFile('../dist.vuetify.js', (err, css) => {
///
})
}
import path from 'path'
import babel from 'rollup-plugin-babel'
import postcss from 'rollup-plugin-postcss'
import replace from 'rollup-plugin-replace'
import { terser } from 'rollup-plugin-terser'
import typescript from 'rollup-plugin-typescript2'
const resolve = file => path.resolve(__dirname, '../', file)
const version = process.env.VERSION || require('../package.json').version
const banner = `/*!
* Vuetify v${version}
* Forged by John Leider
* Released under the MIT License.
*/`
function createConfig (prod) {
const builds = {
// for bundlers (webpack etc.)
'esm': {
dest: resolve('dist/vuetify.esm.js'),
format: 'esm',
minify: false,
extractCss: true
},
// for use in browsers, will be minified by terser
'umd': {
dest: resolve('dist/vuetify.js'),
format: 'umd',
minify: false,
extractCss: true
},
// for bundlers, with css inlined so sourcemaps work
// this will only be produced in watch mode
'esm-dev': {
dest: resolve('dist/vuetify.esm.js'),
format: 'esm',
minify: false,
extractCss: false
}
}
function createConfig (name) {
const config = builds[name]
return {
input: './src/index.ts',
output: {
name: 'Vuetify',
format: 'umd',
file: `dist/vuetify${prod ? '.min' : ''}.js`,
format: config.format,
file: config.dest,
exports: 'default',
sourcemap: !prod,
banner: `/*!
* Vuetify v${version}
* Forged by John Leider
* Released under the MIT License.
*/ `,
sourcemap: true,
banner,
globals: {
vue: 'Vue'
}
......@@ -27,29 +54,20 @@ function createConfig (prod) {
plugins: [
postcss({
extensions: ['.css', '.styl'],
extract: true,
extract: config.extractCss,
use: ['stylus'],
sourceMap: !prod,
minimize: prod && {
discardComments: { removeAll: true },
postcssZindex: false,
reduceIdents: false
}
sourceMap: !config.extractCss // TODO: sources paths are incorrect
}),
typescript({
check: !prod,
tsconfigOverride: {
compilerOptions: {
sourceMap: !prod
}
}
check: false
}),
babel({ plugins: ['external-helpers'] }),
replace({ values: { 'process.env.NODE_ENV': JSON.stringify(prod ? 'production' : 'development') } }),
prod && terser()
babel({ plugins: ['external-helpers'] })
],
external: ['vue']
external: ['vue'],
watch: {
include: 'src/**'
}
}
}
export default [createConfig(false), createConfig(true)]
export default [createConfig(false)]
......@@ -8,16 +8,19 @@
"license": "MIT",
"homepage": "http://vuetifyjs.com",
"repository": "vuetifyjs/vuetify",
"main": "dist/vuetify.js",
"module": "dist/vuetify.js",
"main": "dist/vuetify.esm.js",
"module": "dist/vuetify.esm.js",
"unpkg": "dist/vuetify.js",
"jsdelivr": "dist/vuetify.js",
"types": "types/index.d.ts",
"sideEffects": [
"*.styl"
],
"scripts": {
"watch": "cross-env TARGET=development webpack --config build/config.js --progress --hide-modules --watch",
"watch": "cross-env TARGET=development rollup -c build/rollup.config.js --watch",
"dev": "cross-env NODE_ENV=development webpack-dev-server --config build/webpack.dev.config.js --hot",
"build": "concurrently \"yarn build:dist --no-progress\" \"yarn build:es5\" -n\"dist,es5\" --kill-others-on-fail -r",
"build:dev": "cross-env NODE_ENV=production node build/webpack.dev.config.js",
"build:dist": "rimraf dist && rollup -c build/rollup.config.js",
"build:dist": "rollup -c build/rollup.config.js",
"build:es5": "rimraf es5 es5-temp && tsc -p tsconfig.dist.json && cross-env NODE_ENV=es5 babel es5-temp --out-dir es5 --source-maps -q",
"debug-build": "node --inspect --debug-brk build/config.js",
"debug:test": "cross-env NODE_ENV=test node --inspect --inspect-brk ./node_modules/jest/bin/jest.js --no-cache -i --verbose",
......@@ -36,7 +39,7 @@
"@mdi/font": "^2.6.95",
"@types/jest": "^22.2.3",
"@types/node": "^10.5.8",
"autoprefixer": "^9.1.1",
"autoprefixer": "^9.1.5",
"avoriaz": "^6.3.0",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
......@@ -53,7 +56,7 @@
"cross-env": "^5.2.0",
"css-loader": "^1.0.0",
"css-mqpacker": "^7.0.0",
"cssnano": "^4.0.5",
"cssnano": "^4.1.0",
"dotenv": "^6.0.0",
"eslint": "^5.3.0",
"eslint-config-standard": "^12.0.0-alpha.0",
......@@ -78,6 +81,7 @@
"jest-serializer-html": "^5.0.0",
"mini-css-extract-plugin": "^0.4.1",
"optimize-css-assets-webpack-plugin": "^5.0.0",
"postcss": "^7.0.2",
"postcss-loader": "^3.0.0",
"pug": "^2.0.3",
"pug-loader": "^2.4.0",
......@@ -85,14 +89,13 @@
"rollup": "^0.65.0",
"rollup-plugin-babel": "3.0.7",
"rollup-plugin-postcss": "^1.6.2",
"rollup-plugin-replace": "^2.0.0",
"rollup-plugin-terser": "^2.0.2",
"rollup-plugin-typescript2": "^0.17.0",
"semver": "^5.5.0",
"shelljs": "^0.8.2",
"style-loader": "^0.22.1",
"stylus": "^0.54.5",
"stylus-loader": "^3.0.2",
"terser": "^3.8.2",
"ts-jest": "^21.2.1",
"ts-loader": "^4.4.2",
"tslint": "^5.11.0",
......
......@@ -80,7 +80,7 @@ export default mixins(
'v-btn--round': this.round,
'v-btn--router': this.to,
'v-btn--small': this.small,
'v-btn--top': this.top,
// 'v-btn--top': this.top,
...this.themeClasses
}
}
......
......@@ -8,12 +8,6 @@
dependencies:
"@babel/highlight" "7.0.0-beta.44"
"@babel/code-frame@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
dependencies:
"@babel/highlight" "^7.0.0"
"@babel/generator@7.0.0-beta.44":
version "7.0.0-beta.44"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42"
......@@ -52,14 +46,6 @@
esutils "^2.0.2"
js-tokens "^3.0.0"
"@babel/highlight@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^4.0.0"
"@babel/template@7.0.0-beta.44":
version "7.0.0-beta.44"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f"
......@@ -620,12 +606,12 @@ autoprefixer@^6.3.1:
postcss "^5.2.16"
postcss-value-parser "^3.2.3"
autoprefixer@^9.1.1:
version "9.1.1"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.1.tgz#e4ffa96c71270b8a1967d1542abc5f8453920a77"
autoprefixer@^9.1.5:
version "9.1.5"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.5.tgz#8675fd8d1c0d43069f3b19a2c316f3524e4f6671"
dependencies:
browserslist "^4.0.2"
caniuse-lite "^1.0.30000876"
browserslist "^4.1.0"
caniuse-lite "^1.0.30000884"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
postcss "^7.0.2"
......@@ -1442,12 +1428,12 @@ browserslist@^4.0.0:
electron-to-chromium "^1.3.52"
node-releases "^1.0.0-alpha.10"
browserslist@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.0.2.tgz#294388f5844bb3ab15ef7394ca17f49bf7a4e6f1"
browserslist@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.1.tgz#328eb4ff1215b12df6589e9ab82f8adaa4fc8cd6"
dependencies:
caniuse-lite "^1.0.30000876"
electron-to-chromium "^1.3.57"
caniuse-lite "^1.0.30000884"
electron-to-chromium "^1.3.62"
node-releases "^1.0.0-alpha.11"
bser@^2.0.0:
......@@ -1583,9 +1569,9 @@ caniuse-lite@^1.0.30000844:
version "1.0.30000846"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000846.tgz#2092911eecad71a89dae1faa62bcc202fde7f959"
caniuse-lite@^1.0.30000876:
version "1.0.30000876"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000876.tgz#69fc1b696a35fd91089061aa916f677ee7057ada"
caniuse-lite@^1.0.30000884:
version "1.0.30000885"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984"
capture-exit@^1.2.0:
version "1.2.0"
......@@ -2350,7 +2336,7 @@ cssnano@^3.10.0:
postcss-value-parser "^3.2.3"
postcss-zindex "^2.0.1"
cssnano@^4.0.2, cssnano@^4.0.5:
cssnano@^4.0.2:
version "4.0.5"
resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.0.5.tgz#8789b5fdbe7be05d8a0f7e45c4c789ebe712f5aa"
dependencies:
......@@ -2359,6 +2345,15 @@ cssnano@^4.0.2, cssnano@^4.0.5:
is-resolvable "^1.0.0"
postcss "^6.0.0"
cssnano@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.0.tgz#682c37b84b9b7df616450a5a8dc9269b9bd10734"
dependencies:
cosmiconfig "^5.0.0"
cssnano-preset-default "^4.0.0"
is-resolvable "^1.0.0"
postcss "^6.0.0"
csso@^3.5.0:
version "3.5.1"
resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
......@@ -2690,9 +2685,9 @@ electron-to-chromium@^1.3.52:
version "1.3.52"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz#d2d9f1270ba4a3b967b831c40ef71fb4d9ab5ce0"
electron-to-chromium@^1.3.57:
version "1.3.57"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.57.tgz#61b2446f16af26fb8873210007a7637ad644c82d"
electron-to-chromium@^1.3.62:
version "1.3.64"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.64.tgz#39f5a93bf84ab7e10cfbb7522ccfc3f1feb756cf"
elliptic@^6.0.0:
version "6.4.0"
......@@ -4707,12 +4702,6 @@ jest-validate@^21.2.1:
leven "^2.1.0"
pretty-format "^21.2.1"
jest-worker@^23.2.0:
version "23.2.0"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9"
dependencies:
merge-stream "^1.0.1"
jest@^21.2.1:
version "21.2.1"
resolved "https://registry.yarnpkg.com/jest/-/jest-21.2.1.tgz#c964e0b47383768a1438e3ccf3c3d470327604e1"
......@@ -4731,10 +4720,6 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
js-yaml@^3.11.0, js-yaml@^3.4.3, js-yaml@^3.9.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
......@@ -5096,12 +5081,6 @@ lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2:
pseudomap "^1.0.2"
yallist "^2.1.2"
magic-string@^0.22.4:
version "0.22.5"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e"
dependencies:
vlq "^0.2.2"
make-dir@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
......@@ -5193,12 +5172,6 @@ merge-source-map@^1.1.0:
dependencies:
source-map "^0.6.1"
merge-stream@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
dependencies:
readable-stream "^2.0.1"
merge@^1.1.3:
version "1.2.0"
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
......@@ -7136,7 +7109,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0"
inherits "^2.0.1"
rollup-plugin-babel@3:
rollup-plugin-babel@3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-3.0.7.tgz#5b13611f1ab8922497e9d15197ae5d8a23fe3b1e"
dependencies:
......@@ -7163,22 +7136,6 @@ rollup-plugin-postcss@^1.6.2:
rollup-pluginutils "^2.0.1"
style-inject "^0.3.0"
rollup-plugin-replace@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.0.0.tgz#19074089c8ed57184b8cc64e967a03d095119277"
dependencies:
magic-string "^0.22.4"
minimatch "^3.0.2"
rollup-pluginutils "^2.0.1"
rollup-plugin-terser@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-2.0.2.tgz#1b59d67c80fc0d499cdc29a6991944b2d671ea03"
dependencies:
"@babel/code-frame" "^7.0.0"
jest-worker "^23.2.0"
terser "^3.8.2"
rollup-plugin-typescript2@^0.17.0:
version "0.17.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.17.0.tgz#a540eecfe9ad8ff5e8e86eaf5069bb2a7f84f33a"
......@@ -8401,10 +8358,6 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
vlq@^0.2.2:
version "0.2.3"
resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26"
vm-browserify@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册