From e0da6ba778d85fc02190fe7a5d92212101544710 Mon Sep 17 00:00:00 2001 From: Jiuqing Song Date: Mon, 26 Jun 2023 21:25:56 -0700 Subject: [PATCH] Fix publish script (#1916) --- package.json | 1 - .../roosterjs-content-model-dom/package.json | 3 +- .../package.json | 3 +- .../package.json | 3 +- .../roosterjs-content-model/package.json | 5 ++-- tools/buildTools/checkDependency.js | 4 +-- tools/buildTools/common.js | 27 +++++++++++------- tools/buildTools/dts.js | 20 ++++++------- tools/buildTools/normalize.js | 18 ++++++++++-- tools/buildTools/pack.js | 28 +++++++++++-------- versions.json | 5 ++++ 11 files changed, 70 insertions(+), 47 deletions(-) create mode 100644 versions.json diff --git a/package.json b/package.json index 6a1b025eaa7..107e554e943 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,5 @@ { "name": "roosterjs", - "version": "0.0.0", "description": "Framework-independent javascript editor", "repository": { "type": "git", diff --git a/packages-content-model/roosterjs-content-model-dom/package.json b/packages-content-model/roosterjs-content-model-dom/package.json index 8ead253ea2e..fe54725875a 100644 --- a/packages-content-model/roosterjs-content-model-dom/package.json +++ b/packages-content-model/roosterjs-content-model-dom/package.json @@ -7,6 +7,5 @@ "roosterjs-editor-dom": "", "roosterjs-content-model-types": "" }, - "main": "./lib/index.ts", - "version": "0.0.1" + "main": "./lib/index.ts" } diff --git a/packages-content-model/roosterjs-content-model-editor/package.json b/packages-content-model/roosterjs-content-model-editor/package.json index 3162d24df1b..dbf35f5ecfa 100644 --- a/packages-content-model/roosterjs-content-model-editor/package.json +++ b/packages-content-model/roosterjs-content-model-editor/package.json @@ -9,6 +9,5 @@ "roosterjs-content-model-dom": "", "roosterjs-content-model-types": "" }, - "main": "./lib/index.ts", - "version": "0.0.1" + "main": "./lib/index.ts" } diff --git a/packages-content-model/roosterjs-content-model-types/package.json b/packages-content-model/roosterjs-content-model-types/package.json index 94b32ca2989..f23980d3f08 100644 --- a/packages-content-model/roosterjs-content-model-types/package.json +++ b/packages-content-model/roosterjs-content-model-types/package.json @@ -4,6 +4,5 @@ "dependencies": { "roosterjs-editor-types": "" }, - "main": "./lib/index.ts", - "version": "0.0.1" + "main": "./lib/index.ts" } diff --git a/packages-content-model/roosterjs-content-model/package.json b/packages-content-model/roosterjs-content-model/package.json index 830cc98965e..dd313f97998 100644 --- a/packages-content-model/roosterjs-content-model/package.json +++ b/packages-content-model/roosterjs-content-model/package.json @@ -1,5 +1,5 @@ { - "name": "roosterjs-content-model-dom", + "name": "roosterjs-content-model", "description": "Content Model for roosterjs (Under development)", "dependencies": { "tslib": "^2.3.1", @@ -11,6 +11,5 @@ "roosterjs-content-model-editor": "", "roosterjs-color-utils": "" }, - "main": "./lib/index.ts", - "version": "0.0.1" + "main": "./lib/index.ts" } diff --git a/tools/buildTools/checkDependency.js b/tools/buildTools/checkDependency.js index 83a49598a9a..6d96776822f 100644 --- a/tools/buildTools/checkDependency.js +++ b/tools/buildTools/checkDependency.js @@ -2,7 +2,7 @@ const path = require('path'); const fs = require('fs'); -const { allPackages, readPackageJson, findPackageRoot, err } = require('./common'); +const { allPackages, readPackageJson, findPackageRoot, err, rootPath } = require('./common'); function getPossibleNames(dir, objectName) { return [ @@ -88,7 +88,7 @@ const GlobalAllowedCrossPackageDependency = [ function checkDependency() { allPackages.forEach(packageName => { - const packageRoot = findPackageRoot(packageName); + const packageRoot = path.join(rootPath, findPackageRoot(packageName)); var packageJson = readPackageJson(packageName, true /*readFromSourceFolder*/); var dependencies = Object.keys(packageJson.dependencies); diff --git a/tools/buildTools/common.js b/tools/buildTools/common.js index 2026ba5964c..2f9940f199f 100644 --- a/tools/buildTools/common.js +++ b/tools/buildTools/common.js @@ -8,10 +8,14 @@ const assign = require('object-assign'); const toposort = require('toposort'); const webpack = require('webpack'); +const packagesName = 'packages'; +const packagesUiName = 'packages-ui'; +const packagesContentModelName = 'packages-content-model'; + const rootPath = path.join(__dirname, '../..'); -const packagesPath = path.join(rootPath, 'packages'); -const packagesUiPath = path.join(rootPath, 'packages-ui'); -const packagesContentModelPath = path.join(rootPath, 'packages-content-model'); +const packagesPath = path.join(rootPath, packagesName); +const packagesUiPath = path.join(rootPath, packagesUiName); +const packagesContentModelPath = path.join(rootPath, packagesContentModelName); const nodeModulesPath = path.join(rootPath, 'node_modules'); const typescriptPath = path.join(nodeModulesPath, 'typescript/lib/tsc.js'); const distPath = path.join(rootPath, 'dist'); @@ -84,17 +88,17 @@ function err(message) { function findPackageRoot(packageName) { return packages.indexOf(packageName) >= 0 - ? packagesPath + ? packagesName : packagesUI.indexOf(packageName) >= 0 - ? packagesUiPath + ? packagesUiName : packagesContentModel.indexOf(packageName) >= 0 - ? packagesContentModelPath + ? packagesContentModelName : null; } function readPackageJson(packageName, readFromSourceFolder) { const packageJsonFilePath = path.join( - readFromSourceFolder ? findPackageRoot(packageName) : distPath, + readFromSourceFolder ? rootPath + '/' + findPackageRoot(packageName) : distPath, packageName, 'package.json' ); @@ -145,7 +149,7 @@ function getWebpackExternalCallback(externalLibraryPairs, internalLibraries) { } const buildConfig = { - rooster: { + packages: { targetPath: roosterJsDistPath, packEntry: path.join(packagesPath, 'roosterjs/lib/index.ts'), jsFileBaseName: 'rooster', @@ -155,7 +159,7 @@ const buildConfig = { targetFileName: 'rooster', externalHandler: undefined, }, - roosterReact: { + 'packages-ui': { targetPath: roosterJsUiDistPath, packEntry: path.join(packagesUiPath, 'roosterjs-react/lib/index.ts'), jsFileBaseName: 'rooster-react', @@ -167,7 +171,7 @@ const buildConfig = { dependsOnRoosterJs: true, dependsOnReact: true, }, - roosterContentModel: { + 'packages-content-model': { targetPath: contentModelDistPath, packEntry: path.join(packagesContentModelPath, 'roosterjs-content-model/lib/index.ts'), jsFileBaseName: 'rooster-content-model', @@ -183,6 +187,8 @@ const buildConfig = { }, }; +const versions = JSON.parse(fs.readFileSync(path.join(rootPath, 'versions.json'))); + module.exports = { rootPath, packagesPath, @@ -208,4 +214,5 @@ module.exports = { getWebpackExternalCallback, contentModelDistPath, buildConfig, + versions, }; diff --git a/tools/buildTools/dts.js b/tools/buildTools/dts.js index 31a19d12dec..050ea2397e1 100644 --- a/tools/buildTools/dts.js +++ b/tools/buildTools/dts.js @@ -8,11 +8,11 @@ const { rootPath, distPath, roosterJsDistPath, - mainPackageJson, nodeModulesPath, runNode, err, buildConfig, + versions, } = require('./common'); const namePlaceholder = '__NAME__'; @@ -319,8 +319,8 @@ function publicElement(element) { }); } -function generateDts(library, isAmd, queue) { - var version = JSON.stringify(mainPackageJson.version).replace(/"/g, ''); +function generateDts(library, isAmd, queue, version) { + var version = JSON.stringify(version).replace(/"/g, ''); var content = ''; content += `// Type definitions for roosterjs (Version ${version})\r\n`; content += '// Generated by dts tool from roosterjs\r\n'; @@ -444,7 +444,7 @@ function dts(isAmd, target) { }); const dtsQueue = createQueue(rootPath, distPath, startFileName, tsFiles, externalHandler); - const dtsContent = generateDts(libraryName, isAmd, dtsQueue); + const dtsContent = generateDts(libraryName, isAmd, dtsQueue, versions[target]); const fileName = `${targetFileName}${isAmd ? '-amd' : ''}.d.ts`; const fullFileName = path.join(targetPath, fileName); @@ -475,32 +475,32 @@ function dts(isAmd, target) { module.exports = { dtsCommonJs: { message: `Generating type definition file (rooster.d.ts) for CommonJs...`, - callback: () => dts(false /*isAmd*/, 'rooster'), + callback: () => dts(false /*isAmd*/, 'packages'), enabled: options => options.dts, }, dtsAmd: { message: `Generating type definition file (rooster-amd.d.ts) for AMD...`, - callback: () => dts(true /*isAmd*/, 'rooster'), + callback: () => dts(true /*isAmd*/, 'packages'), enabled: options => options.dts, }, dtsCommonJsUi: { message: `Generating type definition file (rooster-react.d.ts) for CommonJs...`, - callback: () => dts(false /*isAmd*/, 'roosterReact'), + callback: () => dts(false /*isAmd*/, 'packages-ui'), enabled: options => options.dts, }, dtsAmdUi: { message: `Generating type definition file (rooster-react-amd.d.ts) for AMD...`, - callback: () => dts(true /*isAmd*/, 'roosterReact'), + callback: () => dts(true /*isAmd*/, 'packages-ui'), enabled: options => options.dts, }, dtsCommonJsContentModel: { message: `Generating type definition file (rooster-content-model.d.ts) for CommonJs...`, - callback: () => dts(false /*isAmd*/, 'roosterContentModel'), + callback: () => dts(false /*isAmd*/, 'packages-content-model'), enabled: options => options.dts, }, dtsAmdContentModel: { message: `Generating type definition file (rooster-content-model-amd.d.ts) for AMD...`, - callback: () => dts(true /*isAmd*/, 'roosterContentModel'), + callback: () => dts(true /*isAmd*/, 'packages-content-model'), enabled: options => options.dts, }, }; diff --git a/tools/buildTools/normalize.js b/tools/buildTools/normalize.js index 7d8af8ecd53..c350553358e 100644 --- a/tools/buildTools/normalize.js +++ b/tools/buildTools/normalize.js @@ -4,12 +4,22 @@ const path = require('path'); const mkdirp = require('mkdirp'); const fs = require('fs'); const processConstEnum = require('./processConstEnum'); -const { allPackages, distPath, readPackageJson, mainPackageJson, err } = require('./common'); +const { + allPackages, + distPath, + readPackageJson, + mainPackageJson, + err, + findPackageRoot, + versions, +} = require('./common'); function normalize() { const knownCustomizedPackages = {}; allPackages.forEach(packageName => { + const versionKey = findPackageRoot(packageName); + const version = versions[versionKey]; const packageJson = readPackageJson(packageName, true /*readFromSourceFolder*/); Object.keys(packageJson.dependencies).forEach(dep => { @@ -18,7 +28,9 @@ function normalize() { } else if (knownCustomizedPackages[dep]) { packageJson.dependencies[dep] = '^' + knownCustomizedPackages[dep]; } else if (allPackages.indexOf(dep) > -1) { - packageJson.dependencies[dep] = '^' + mainPackageJson.version; + var depKey = findPackageRoot(dep); + var depVersion = versions[depKey]; + packageJson.dependencies[dep] = '^' + depVersion; } else if (mainPackageJson.dependencies && mainPackageJson.dependencies[dep]) { packageJson.dependencies[dep] = mainPackageJson.dependencies[dep]; } else if (!packageJson.dependencies[dep]) { @@ -29,7 +41,7 @@ function normalize() { if (packageJson.version) { knownCustomizedPackages[packageName] = packageJson.version; } else { - packageJson.version = mainPackageJson.version; + packageJson.version = version; } packageJson.typings = './lib/index.d.ts'; diff --git a/tools/buildTools/pack.js b/tools/buildTools/pack.js index 97a36480549..f42f4dc01ba 100644 --- a/tools/buildTools/pack.js +++ b/tools/buildTools/pack.js @@ -65,28 +65,32 @@ function createStep(isProduction, isAmd, target) { } module.exports = { - commonJsDebug: createStep(false /*isProduction*/, false /*isAmd*/, 'rooster'), - commonJsProduction: createStep(true /*isProduction*/, false /*isAmd*/, 'rooster'), - amdDebug: createStep(false /*isProduction*/, true /*isAmd*/, 'rooster'), - amdProduction: createStep(true /*isProduction*/, true /*isAmd*/, 'rooster'), - commonJsDebugUi: createStep(false /*isProduction*/, false /*isAmd*/, 'roosterReact'), - commonJsProductionUi: createStep(true /*isProduction*/, false /*isAmd*/, 'roosterReact'), - amdDebugUi: createStep(false /*isProduction*/, true /*isAmd*/, 'roosterReact'), - amdProductionUi: createStep(true /*isProduction*/, true /*isAmd*/, 'roosterReact'), + commonJsDebug: createStep(false /*isProduction*/, false /*isAmd*/, 'packages'), + commonJsProduction: createStep(true /*isProduction*/, false /*isAmd*/, 'packages'), + amdDebug: createStep(false /*isProduction*/, true /*isAmd*/, 'packages'), + amdProduction: createStep(true /*isProduction*/, true /*isAmd*/, 'packages'), + commonJsDebugUi: createStep(false /*isProduction*/, false /*isAmd*/, 'packages-ui'), + commonJsProductionUi: createStep(true /*isProduction*/, false /*isAmd*/, 'packages-ui'), + amdDebugUi: createStep(false /*isProduction*/, true /*isAmd*/, 'packages-ui'), + amdProductionUi: createStep(true /*isProduction*/, true /*isAmd*/, 'packages-ui'), commonJsDebugContentModel: createStep( false /*isProduction*/, false /*isAmd*/, - 'roosterContentModel' + 'packages-content-model' ), commonJsProductionContentModel: createStep( true /*isProduction*/, false /*isAmd*/, - 'roosterContentModel' + 'packages-content-model' + ), + amdDebugContentModel: createStep( + false /*isProduction*/, + true /*isAmd*/, + 'packages-content-model' ), - amdDebugContentModel: createStep(false /*isProduction*/, true /*isAmd*/, 'roosterContentModel'), amdProductionContentModel: createStep( true /*isProduction*/, true /*isAmd*/, - 'roosterContentModel' + 'packages-content-model' ), }; diff --git a/versions.json b/versions.json new file mode 100644 index 00000000000..62eb04c9ee4 --- /dev/null +++ b/versions.json @@ -0,0 +1,5 @@ +{ + "packages": "0.0.0", + "packages-ui": "0.0.0", + "packages-content-model": "0.0.0" +}