Skip to content

Commit

Permalink
chore: build (#361)
Browse files Browse the repository at this point in the history
  • Loading branch information
jc9702507 authored Nov 22, 2022
1 parent a31aa89 commit 651c5ee
Show file tree
Hide file tree
Showing 15 changed files with 151 additions and 177 deletions.
53 changes: 31 additions & 22 deletions .dumi/theme/builtins/iframe.html
Original file line number Diff line number Diff line change
Expand Up @@ -42,28 +42,37 @@
return fetch(`/sourceCode/${defaultPage}`).then(res => res.json());
}

function startWebOpenBoxPreviewApp() {
Promise.all([
getDist(),
getSourceCode(),
]).then(([dist, sourceCode]) => {
window.OpenBoxPreview.StartWebOpenBoxPreviewApp({
containerStyle: {
width: '100%',
height: '100%',
},
sourceCode,
dist,
isShowToolbar: true,
toolbarOptions: {
isShowQrcode: false,
isShowDownload: false,
isShowEditMode: false,
isShowLyraRefresh: true,
isShowSwitchLyra: true
},
isShowHeaderLogo: false
});
async function startWebOpenBoxPreviewApp() {
let dist;
let sourceCode;
if (location.port) {
const arr = await Promise.all([
getDist(),
getSourceCode(),
]);
dist = arr[0];
sourceCode = arr[1];
} else {
const obj = await fetch('/preview.json').then(res => res.json());
dist = obj.dist;
sourceCode = obj.sourceCode;
}
window.OpenBoxPreview.StartWebOpenBoxPreviewApp({
containerStyle: {
width: '100%',
height: '100%',
},
sourceCode,
dist,
isShowToolbar: true,
toolbarOptions: {
isShowQrcode: false,
isShowDownload: false,
isShowEditMode: false,
isShowLyraRefresh: true,
isShowSwitchLyra: true
},
isShowHeaderLogo: true
});
}
startWebOpenBoxPreviewApp();
Expand Down
3 changes: 0 additions & 3 deletions __tests__/__snapshots__/axml.spec.ts.snap

This file was deleted.

3 changes: 0 additions & 3 deletions __tests__/__snapshots__/less.spec.ts.snap

This file was deleted.

3 changes: 0 additions & 3 deletions __tests__/__snapshots__/ts.spec.ts.snap

This file was deleted.

13 changes: 0 additions & 13 deletions __tests__/axml.spec.ts

This file was deleted.

9 changes: 0 additions & 9 deletions __tests__/less.spec.ts

This file was deleted.

11 changes: 0 additions & 11 deletions __tests__/markdowns.spec.ts

This file was deleted.

10 changes: 0 additions & 10 deletions __tests__/ts.spec.ts

This file was deleted.

18 changes: 3 additions & 15 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,12 @@
"version": "0.0.23",
"scripts": {
"dev": "node ./scripts/dev.js",
"build": "npm run build:component && npm run build:site",
"build:component": "NODE_ENV=production node scripts/compile.js",
"build:site": "dumi build",
"build:demo": "minidev build --output=$PWD/dist --typescript --less --no-source-map",
"deploy:docs": "npm run build:site && echo 'mini.ant.design' > ./docs-dist/CNAME && gh-pages -d docs-dist",
"build": "node ./scripts/build.js",
"deploy:docs": "npm run build && echo 'mini.ant.design' > ./docs-dist/CNAME && gh-pages -d docs-dist",
"lint:code": "eslint \"demo/pages/**/*.js\" \"scripts/*.js\" \"src/**/*.ts\"",
"lint:code:fix": "eslint \"demo/pages/**/*.js\" \"scripts/*.js\" \"src/**/*.ts\" --fix",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
"prepublishOnly": "npm run build:component",
"prepublishOnly": "npm run build",
"pub": "node scripts/publish.js",
"test:less": "jest __tests__/less.spec.ts",
"test:markdown": "jest __tests__/markdowns.spec.ts",
Expand Down Expand Up @@ -51,27 +48,19 @@
"@babel/traverse": "^7.0.0",
"@babel/types": "^7.0.0",
"@mini-types/alipay": "^1.0.8",
"@types/acorn": "^4.0.6",
"@types/babel__code-frame": "^7.0.0",
"@types/babel__core": "^7.0.0",
"@types/babel__generator": "^7.0.0",
"@types/babel__parser": "^7.0.0",
"@types/babel__traverse": "^7.0.0",
"@types/css-tree": "^1.0.7",
"@types/jest": "^27.4.0",
"@types/less": "^3.0.3",
"@types/marked": "^4.0.2",
"@typescript-eslint/eslint-plugin": "^5.6.0",
"@typescript-eslint/parser": "^5.6.0",
"acorn": "^8.7.0",
"alipay-style": "^0.1.0",
"antd": "^4.20.7",
"axios": "^0.24.0",
"chalk": "^4.1.0",
"conventional-changelog-cli": "^2.1.1",
"css-tree": "^2.0.4",
"detect-port": "1.3.0",
"dingtalk-design-cli": "^0.20.2",
"dumi": "^1.1.35",
"eslint": "^8.4.1",
"eslint-config-ali": "^13.0.0",
Expand All @@ -91,7 +80,6 @@
"jest": "^27.5.1",
"less": "^4.1.2",
"lint-staged": "^10.0.7",
"marked": "^4.0.12",
"minidev": "^1.0.7",
"path": "^0.12.7",
"postcss-less": "^6.0.0",
Expand Down
2 changes: 1 addition & 1 deletion plugin/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ async function getSourceCode(page: string) {
});
const json = {};
(await Promise.all(list)).forEach((item, index) => {
json[arr[index]] = item;
json[arr[index]] = item.replace(/('|")[^'"]*\/src/g, '$1antd-mini');
});
return json;
}
Expand Down
124 changes: 111 additions & 13 deletions scripts/build.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,112 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const path = require('path');
const { fork } = require("child_process");
const { minidev } = require('minidev');
const { fork } = require('child_process');

// demo 小程序上传
minidev.upload({
appId: 'xxxxx',
project: `${process.cwd()}/demo`,
}).then((res) => {
// 上传成功后 dumi 构建
fork(`${process.cwd()}/node_modules/dumi/bin/dumi.js`, ['build', `${res.experienceQrCodeUrl}`]);
// 同步构建产物
//
});
const fs= require('fs');
const less = require('less');
const compile = require('./compile');


function buildMiniProgram() {
return minidev.build({
project: path.join(__dirname, '../'),
output: path.join(__dirname, '../dist'),
enableLess: true,
enableTypescript: true,
}).catch(() => {
process.exit(1);
});
}

function buildDocs() {
return new Promise((resolve) => {
const child = fork(`${process.cwd()}/node_modules/dumi/bin/dumi.js`, ['build'], {
env: {
FORCE_COLOR: 1,
},
});
child.on('close', (code) => {
if (code !== 0) {
process.exit(code);
}
resolve();
});
process.on('exit', () => {
child.kill();
});
})
}

async function buildPreview() {
function lessCompile(filename) {
return fs.promises.readFile(filename, 'utf-8').then(content => new Promise((resolve, reject) => {
less.render(content, {
filename,
}, (e, output) => {
if (e) {
reject(e);
}
resolve(output.css);
});
}));
}

function getFileContent(file) {
return fs.promises.readFile(file, 'utf-8');
}

async function getSourceCode(page) {
const map = {
'.js': getFileContent,
'.axml': getFileContent,
'.acss': getFileContent,
'.less': lessCompile,
'.json': getFileContent,
};
const list = [];
const arr = [];
Object.keys(map).forEach(item => {
const filename = path.join(__dirname, '../demo', page + item);
if (fs.existsSync(filename)) {
arr.push(page + (item === '.less' ? '.acss' : item));
list.push(map[item](filename));
}
});
const json = {};
(await Promise.all(list)).forEach((item, index) => {
json[arr[index]] = item.replace(/('|")[^'"]*\/src/g, '$1antd-mini');
});
return json;
}

const list = ['appConfig.json', 'index.html', 'index.js', 'index.worker.js'];
const dist = {};
list.forEach(item => {
const content = fs.readFileSync(path.join(__dirname, '../dist/ng-main', item), 'utf-8');
dist[item] = content;
});

const appConfig = require(path.join(__dirname, '../demo/app.json'));
const pages = appConfig.pages;
const sourceCode = {};
const arr = await Promise.all(pages.map(item => getSourceCode(item)));
arr.forEach(item => {
Object.assign(sourceCode, item);
});
const iframeContent = fs.readFileSync(path.join(__dirname, '../.dumi/theme/builtins/iframe.html'), 'utf-8');
fs.writeFileSync(path.join(__dirname, '../docs-dist/preview.json'), JSON.stringify({
dist,
sourceCode,
}));
fs.writeFileSync(path.join(__dirname, '../docs-dist/preview.html'), iframeContent);
}


(async () => {
await Promise.all([
buildMiniProgram(),
buildDocs(),
compile(),
]);
await buildPreview()
console.log('build success!');
})();
21 changes: 5 additions & 16 deletions scripts/compile.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,18 @@ const rename = require('gulp-rename');
const cleanCss = require('gulp-clean-css');
const babel = require('gulp-babel');
const gulpif = require('gulp-if');
const injectEnvs = require('gulp-inject-envs');
const ts = require('gulp-typescript');

const isProduction = process.env.NODE_ENV === 'production';
const dist = isProduction ? path.join(__dirname, '../es') : path.join(__dirname, '../demo/es');

const dist = path.join(__dirname, '../es');
const src = path.join(__dirname, '../src');
const extTypes = ['ts', 'less', 'json', 'axml', 'sjs', 'js'];
const isRpx = process.argv.splice(2)[0] === '--rpx';
const env = { jsUnitRpx: isRpx };

gulp.task('less', () => gulp.src(`${src}/**/index.less`)
.pipe(less({
modifyVars: {
'@rpx': isRpx ? '1rpx': '0.5px',
'@pixelSize': isRpx ? '1rpx': '0.5px',
},
}))
.pipe(less())
// eslint-disable-next-line no-console
.on('error', (e) => console.error(e))
.pipe(gulpif(isProduction, cleanCss()))
.pipe(cleanCss())
.pipe(rename({
extname: '.acss',
}))
Expand Down Expand Up @@ -58,13 +50,10 @@ gulp.task('ts', () => gulp.src(`${src}/**/*.ts`)
allowSyntheticDefaultImports: true,
target: 'ES5'
})))
.pipe(injectEnvs(env))
.on('error', (err) => {
// eslint-disable-next-line no-console
console.log(err);
})
.pipe(gulp.dest(dist)));

const build = gulp.series(...extTypes);

build();
module.exports = () => new Promise(resolve => gulp.series(...extTypes, resolve)());
6 changes: 0 additions & 6 deletions scripts/publishUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,6 @@ function doPublish(tag, newVersion) {
console.log('发布中 ...');
const originPkgJson = require(PKG_JSON_PATH);
publish('antd-mini', tag, newVersion);
publish('antd-mini-rpx', tag, newVersion);
// 只回写正式版的 package.json
if (tag === 'latest') {
originPkgJson.version = newVersion;
Expand All @@ -164,11 +163,6 @@ function updatePkgJson(npmName, version) {
const pkgJson = require(PKG_JSON_PATH);
pkgJson.name = npmName;
pkgJson.version = version;
if (npmName === 'antd-mini') {
pkgJson.scripts.prepublishOnly = 'npm run build:component';
} else if (npmName === 'antd-mini-rpx') {
pkgJson.scripts.prepublishOnly = 'npm run build:component:rpx';
}
return JSON.stringify(pkgJson, null, 2);
}

Expand Down
Loading

0 comments on commit 651c5ee

Please sign in to comment.