From e69dcd3ca315ce7cf417ce821098396f099980f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E4=BA=91=E9=A3=9E?= Date: Thu, 8 Dec 2022 17:46:38 +0800 Subject: [PATCH] feat:publish npm package config --- package.json | 35 ++++++++++++++- src/editor/core/draw/Draw.ts | 4 +- src/editor/core/worker/WorkerManager.ts | 2 +- tsconfig.json | 13 ++++-- vite.config.ts | 30 ++++++++++--- yarn.lock | 57 ++++++++++++++++++++++++- 6 files changed, 126 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 99bdb13..24d4bef 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,36 @@ { + "name": "@hufe921/canvas-editor", + "author": "Hufe", + "license": "MIT", "version": "0.9.8", + "description": "rich text editor by canvas/svg", + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "files": [ + "dist", + "README.md", + "LICENSE", + "package.json" + ], + "typings": "./dist/src/editor/index.d.ts", + "main": "./dist/canvas-editor.umd.js", + "module": "./dist/canvas-editor.es.js", + "homepage": "https://github.com/Hufe921/canvas-editor", + "repository": { + "type": "git", + "url": "https://github.com/Hufe921/canvas-editor.git" + }, + "keywords": [ + "canvas-editor", + "editor", + "wysiwyg", + "emr" + ], + "engines": { + "node": ">=12.0.0" + }, "scripts": { "dev": "vite", "lib": "npm run lint && tsc && vite build --mode lib", @@ -11,6 +42,7 @@ "type:check": "tsc --noEmit" }, "devDependencies": { + "@rollup/plugin-typescript": "^10.0.1", "@types/node": "^16.11.12", "@types/prismjs": "^1.26.0", "@typescript-eslint/eslint-plugin": "4.33.0", @@ -19,7 +51,8 @@ "cypress-file-upload": "^5.0.8", "eslint": "7.32.0", "typescript": "^4.3.2", - "vite": "^2.4.2" + "vite": "^2.4.2", + "vite-plugin-css-injected-by-js": "^2.1.1" }, "dependencies": { "prismjs": "^1.27.0" diff --git a/src/editor/core/draw/Draw.ts b/src/editor/core/draw/Draw.ts index 7037f52..238aca9 100644 --- a/src/editor/core/draw/Draw.ts +++ b/src/editor/core/draw/Draw.ts @@ -35,7 +35,7 @@ import { SubscriptParticle } from './particle/Subscript' import { SeparatorParticle } from './particle/Separator' import { PageBreakParticle } from './particle/PageBreak' import { Watermark } from './frame/Watermark' -import { EditorMode, PageMode } from '../../dataset/enum/Editor' +import { EditorComponent, EditorMode, PageMode } from '../../dataset/enum/Editor' import { Control } from './control/Control' import { zipElementList } from '../../utils/element' import { CheckboxParticle } from './particle/CheckboxParticle' @@ -47,6 +47,7 @@ import { Previewer } from './particle/previewer/Previewer' import { DateParticle } from './particle/date/DateParticle' import { IMargin } from '../../interface/Margin' import { BlockParticle } from './particle/block/BlockParticle' +import { EDITOR_COMPONENT } from '../../dataset/constant/Editor' export class Draw { @@ -516,6 +517,7 @@ export class Draw { // 容器宽度需跟随纸张宽度 this.container.style.position = 'relative' this.container.style.width = `${this.getWidth()}px` + this.container.setAttribute(EDITOR_COMPONENT, EditorComponent.MAIN) } private _createPageContainer(): HTMLDivElement { diff --git a/src/editor/core/worker/WorkerManager.ts b/src/editor/core/worker/WorkerManager.ts index efd2ede..4da59f8 100644 --- a/src/editor/core/worker/WorkerManager.ts +++ b/src/editor/core/worker/WorkerManager.ts @@ -1,5 +1,5 @@ import { Draw } from '../draw/Draw' -import WordCountWorker from './works/wordCount?worker' +import WordCountWorker from './works/wordCount?worker&inline' export class WorkerManager { diff --git a/tsconfig.json b/tsconfig.json index 4824d01..9cd23c4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,10 +8,17 @@ "sourceMap": true, "resolveJsonModule": true, "esModuleInterop": true, + "declaration": true, "noEmit": true, "noUnusedLocals": true, "noUnusedParameters": true, - "noImplicitReturns": true + "noImplicitReturns": true, + "outDir": "dist", + "rootDir": "", }, - "include": ["./src"] -} + "include": ["./src/"], + "exclude": [ + "node_modules", + "dist" + ] +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 72f44fb..a69f2d4 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,24 +1,40 @@ -import { defineConfig, UserConfig } from 'vite' +import { defineConfig } from 'vite' +import typescript from '@rollup/plugin-typescript' +import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js' import * as path from 'path' export default defineConfig(({ mode }) => { const name = 'canvas-editor' - const defaultOptions: UserConfig = { - base: `/${name}/` - } if (mode === 'lib') { return { - ...defaultOptions, + plugins: [ + cssInjectedByJsPlugin(), + { + ...typescript({ + tsconfig: './tsconfig.json', + include: ['./src/editor/**'], + }), + apply: 'build', + declaration: true, + declarationDir: 'types/', + rootDir: '/' + } + ], build: { lib: { name, - fileName: (format) => `${name}.${format}.js`, + fileName: name, entry: path.resolve(__dirname, 'src/editor/index.ts') + }, + rollupOptions: { + output: { + sourcemap: true + } } } } } return { - ...defaultOptions + base: `/${name}/` } }) \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 2a352e4..e61f27f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -105,6 +105,28 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@rollup/plugin-typescript@^10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-10.0.1.tgz#270b515b116ea28320e6bb62451c4767d49072d6" + integrity sha512-wBykxRLlX7EzL8BmUqMqk5zpx2onnmRMSw/l9M1sVfkJvdwfxogZQVNUM9gVMJbjRLDR5H6U0OMOrlDGmIV45A== + dependencies: + "@rollup/pluginutils" "^5.0.1" + resolve "^1.22.1" + +"@rollup/pluginutils@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@types/estree@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + "@types/json-schema@^7.0.7": version "7.0.10" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" @@ -912,6 +934,11 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -1255,6 +1282,13 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -1578,7 +1612,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -1603,7 +1637,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.2.3: +picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -1705,6 +1739,15 @@ resolve@^1.20.0: is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -1880,6 +1923,11 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + table@^6.0.9: version "6.8.0" resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" @@ -2015,6 +2063,11 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vite-plugin-css-injected-by-js@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-2.1.1.tgz#a79275241c61f1c8d55d228f5b2dded450a580e4" + integrity sha512-gjIG6iFWde32oRr/bK9CsfN+jdbura2y4GlDzeOiEm6py38ud8dXzFl9zwmHjOjZdr8XEgQ9TovzVGNzp47esw== + vite@^2.4.2: version "2.6.14" resolved "https://registry.yarnpkg.com/vite/-/vite-2.6.14.tgz#35c09a15e4df823410819a2a239ab11efb186271"