feat: init @idraw/renderer

This commit is contained in:
chenshenhai 2021-11-07 22:21:30 +08:00
parent d604fa10ef
commit feeff73013
9 changed files with 87 additions and 34 deletions

View file

@ -3,6 +3,7 @@
"packages/types",
"packages/util",
"packages/board",
"packages/renderer",
"packages/core",
"packages/idraw"
],

View file

@ -5,7 +5,9 @@
"dev": "node ./scripts/dev.js",
"dev:board": "node ./scripts/dev.js board",
"dev:core": "node ./scripts/dev.js core",
"build": "NODE_ENV=production node ./scripts/build.js",
"build": "npm run build:src && npm run build:min",
"build:src": "NODE_ENV=production BUILD_MODE=reset node ./scripts/build.js",
"build:min": "NODE_ENV=production BUILD_MODE=mini node ./scripts/build.js",
"snapshot": "node ./scripts/build.js && node ./scripts/snapshot.js",
"e2e": "mocha --exit ./__tests__/e2e.test.js",
"init": "lerna bootstrap",

View file

@ -0,0 +1,3 @@
# @idraw/renderer
[![Node.js CI](https://github.com/idrawjs/idraw/actions/workflows/node.js.yml/badge.svg?branch=main)](https://github.com/idrawjs/idraw/actions/workflows/node.js.yml)

View file

@ -0,0 +1,7 @@
{
"extends": "../../api-extractor.json",
"mainEntryPointFilePath": "./dist/packages/<unscopedPackageName>/src/index.d.ts",
"dtsRollup": {
"publicTrimmedFilePath": "./dist/index.d.ts"
}
}

View file

@ -0,0 +1,28 @@
{
"name": "@idraw/renderer",
"version": "0.2.0-alpha.16",
"description": "",
"main": "dist/index.cjs.js",
"module": "dist/index.es.js",
"unpkg": "dist/index.global.js",
"types": "dist/index.d.ts",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"files": [
"dist"
],
"repository": {
"type": "git",
"url": "git+https://github.com/idrawjs/idraw.git"
},
"bugs": {
"url": "https://github.com/idrawjs/idraw/issues"
},
"homepage": "https://github.com/idrawjs/idraw#readme",
"author": "chenshenhai",
"license": "MIT",
"publishConfig": {
"access": "public"
}
}

View file

@ -0,0 +1,5 @@
class Renderer {
// TODO
}
export default Renderer;

View file

@ -10,12 +10,14 @@ const pkgNames = packages.map((pkg) => {
async function main() {
pkgNames.forEach(async (name) => {
const target = name;
const pkgDir = path.resolve(`packages/${target}`);
// const pkg = require(`${pkgDir}/package.json`)
await fs.remove(`${pkgDir}/dist`);
});
if (process.env.BUILD_MODE === 'reset') {
pkgNames.forEach(async (name) => {
const target = name;
const pkgDir = path.resolve(`packages/${target}`);
// const pkg = require(`${pkgDir}/package.json`)
await fs.remove(`${pkgDir}/dist`);
});
}
await
execa('rollup', [ '-c', './scripts/rollup.config.js', ], { stdio: 'inherit' });

View file

@ -7,6 +7,10 @@ const packages = [
dirName: 'board',
globalName: 'iDrawBoard',
},
{
dirName: 'renderer',
globalName: 'iDrawRenderer',
},
// {
// dirName: 'kernal',
// globalName: 'iDrawKernal',

View file

@ -21,14 +21,7 @@ const external = [ '@idraw/types', '@idraw/util', '@idraw/board', '@idraw/core'
for(let i = 0; i < packages.length; i++) {
const pkg = packages[i];
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.global.js']),
name: pkg.globalName,
format: 'iife',
plugins: []
});
if (process.env.NODE_ENV === 'production') {
if (process.env.BUILD_MODE === 'mini') {
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.global.min.js']),
@ -36,26 +29,34 @@ for(let i = 0; i < packages.length; i++) {
format: 'iife',
plugins: []
});
} else {
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.global.js']),
name: pkg.globalName,
format: 'iife',
plugins: []
});
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.cjs.js']),
name: pkg.globalName,
format: 'cjs',
exports: 'default',
// plugins: [dtsPlugin(pkg.dirName),],
plugins: [],
external,
});
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.es.js']),
name: pkg.globalName,
esModule: true,
format: 'es',
external,
plugins: [dtsPlugin(pkg.dirName),]
});
}
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.cjs.js']),
name: pkg.globalName,
format: 'cjs',
exports: 'default',
// plugins: [dtsPlugin(pkg.dirName),],
plugins: [],
external,
});
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.es.js']),
name: pkg.globalName,
esModule: true,
format: 'es',
external,
plugins: [dtsPlugin(pkg.dirName),]
});
}