提交 148a43e5 编写于 作者: fxy060608's avatar fxy060608

chore: size-check

上级 8b38221b
......@@ -13,10 +13,6 @@ jobs:
CI_JOB_NUMBER: 1
steps:
- uses: actions/checkout@v1
- uses: bahmutov/npm-install@v1
- uses: posva/size-check-action@v1.1.2
- uses: andresz1/size-limit-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
build_script: build
files: packages/size-check/dist/assets/index.js packages/size-check/dist/assets/index.css packages/uni-h5-vue/dist/vue.runtime.esm.js packages/uni-mp-vue/dist/vue.runtime.esm.js packages/uni-mp-alipay/dist/uni.api.esm.js packages/uni-mp-alipay/dist/uni.mp.esm.js packages/uni-mp-baidu/dist/uni.api.esm.js packages/uni-mp-baidu/dist/uni.mp.esm.js packages/uni-mp-qq/dist/uni.api.esm.js packages/uni-mp-qq/dist/uni.mp.esm.js packages/uni-mp-toutiao/dist/uni.api.esm.js packages/uni-mp-toutiao/dist/uni.mp.esm.js packages/uni-mp-weixin/dist/uni.api.esm.js packages/uni-mp-weixin/dist/uni.mp.esm.js packages/uni-quickapp-webview/dist/uni.api.esm.js packages/uni-quickapp-webview/dist/uni.mp.esm.js
module.exports = [
{
path: 'packages/size-check/dist/assets',
running: false,
},
{
path: 'packages/uni-h5-vue/dist',
running: false,
},
{
path: 'packages/uni-mp-vue/dist',
running: false,
},
{
path: 'packages/uni-mp-alipay/dist',
running: false,
},
{
path: 'packages/uni-mp-baidu/dist',
running: false,
},
{
path: 'packages/uni-mp-qq/dist',
running: false,
},
{
path: 'packages/uni-mp-toutiao/dist',
running: false,
},
{
path: 'packages/uni-mp-weixin/dist',
running: false,
},
{
path: 'packages/uni-quickapp-webview/dist',
running: false,
},
]
......@@ -6,6 +6,7 @@
],
"scripts": {
"build": "node scripts/build.js",
"size": "size-limit",
"lint": "eslint packages/*/src/**/*.ts",
"format": "prettier --write --parser typescript \"packages/**/*.ts?(x)\"",
"ls-lint": "ls-lint",
......@@ -40,6 +41,7 @@
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^11.0.1",
"@rollup/plugin-replace": "^2.3.4",
"@size-limit/preset-app": "^4.10.1",
"@types/debug": "^4.1.5",
"@types/es-module-lexer": "^0.3.0",
"@types/fs-extra": "^9.0.6",
......@@ -49,7 +51,6 @@
"@typescript-eslint/parser": "^4.12.0",
"@vitejs/plugin-vue": "^1.0.4",
"@vue/compiler-sfc": "^3.0.5",
"brotli": "^1.3.2",
"eslint": "^7.17.0",
"fs-extra": "^9.0.1",
"jest": "^26.6.3",
......@@ -64,6 +65,7 @@
"rollup-plugin-typescript2": "^0.29.0",
"rollup-plugin-vue": "^6.0.0",
"semver": "^7.3.4",
"size-limit": "^4.10.1",
"ts-jest": "^26.4.4",
"typescript": "~4.1.3",
"vite": "^2.1.1",
......
......@@ -13,13 +13,13 @@ export default {
root: __dirname,
build: {
// minify: false,
rollupOptions: {
output: {
entryFileNames: `assets/[name].js`,
chunkFileNames: `assets/[name].js`,
assetFileNames: `assets/[name].[ext]`,
},
},
// rollupOptions: {
// output: {
// entryFileNames: `assets/[name].js`,
// chunkFileNames: `assets/[name].js`,
// assetFileNames: `assets/[name].[ext]`,
// },
// },
},
plugins: [
......
import path from 'path'
import { Plugin } from 'vite'
import { VitePluginUniResolvedOptions } from '..'
......@@ -23,6 +24,7 @@ export function createConfig(
server: createServer(options),
build: createBuild(options),
css: createCss(options),
publicDir: path.join(options.inputDir, 'static'),
}
}
}
......@@ -2,8 +2,6 @@ const fs = require('fs-extra')
const path = require('path')
const chalk = require('chalk')
const execa = require('execa')
const { gzipSync } = require('zlib')
const { compress } = require('brotli')
const { extract } = require('./apiExtractor')
......@@ -22,10 +20,8 @@ run()
async function run() {
if (!targets.length) {
await buildAll(allTargets)
checkAllSizes(allTargets)
} else {
await buildAll(fuzzyMatchTarget(targets, buildAllMatching))
checkAllSizes(fuzzyMatchTarget(targets, buildAllMatching))
}
}
......@@ -95,42 +91,3 @@ async function build(target) {
await extract(target)
}
}
function checkAllSizes(targets) {
if (devOnly) {
return
}
console.log()
for (const target of targets) {
checkSize(target)
}
console.log()
}
function checkSize(target) {
const pkgDir = path.resolve(`packages/${target}`)
if (require(path.join(pkgDir, 'package.json')).buildOptions) {
return
}
console.log(`${chalk.blueBright(target)}:`)
checkFileSize(`${pkgDir}/dist/vue.runtime.esm.js`)
checkFileSize(`${pkgDir}/dist/uni.api.esm.js`)
checkFileSize(`${pkgDir}/dist/uni.mp.esm.js`)
}
function checkFileSize(filePath) {
if (!fs.existsSync(filePath)) {
return
}
const file = fs.readFileSync(filePath)
const minSize = (file.length / 1024).toFixed(2) + 'kb'
const gzipped = gzipSync(file)
const gzippedSize = (gzipped.length / 1024).toFixed(2) + 'kb'
const compressed = compress(file)
const compressedSize = (compressed.length / 1024).toFixed(2) + 'kb'
console.log(
`${chalk.gray(
chalk.bold(path.basename(filePath))
)} min:${minSize} / gzip:${gzippedSize} / brotli:${compressedSize}`
)
}
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册