npm.io
0.1.6 • Published 2 months ago

deeptwins-cesium

Licence
Apache-2.0
Version
0.1.6
Deps
2
Size
55.5 MB
Vulns
0
Weekly
0

deeptwins-CesiumJS

deeptwins CesiumJS fork。项目使用 npm workspaces 管理以下包:

  • deeptwins-cesium-engine
  • deeptwins-cesium-widgets
  • deeptwins-cesium

环境要求

  • Node.js >=18.18.0
  • npm
  • 可用的 npm registry 发布权限

安装依赖:

npm install

本地构建

开发构建:

npm run build

单独构建 workspace:

npm run build --workspace "deeptwins-cesium-engine"
npm run build --workspace "deeptwins-cesium-widgets"

生成 TypeScript 类型:

npm run build-ts

完整 release 构建:

npm run release

该命令会生成可发布产物,并同时生成类型和文档。

打包

生成 release zip:

npm run make-zip

产物位于仓库根目录,文件名格式为:

Cesium-<version>.zip

发布 npm 前建议先用 npm pack 检查实际包内容:

npm pack -w "deeptwins-cesium-engine"
npm pack -w "deeptwins-cesium-widgets"
npm pack

检查生成的 .tgz 后再发布。确认无误后可以删除这些本地 .tgz 文件,避免误提交。

发布前检查

发布前至少执行:

npm run build
npm run build-ts
npm run test -- --failTaskOnError

如果要验证压缩后的 release 产物:

npm run make-zip
npm run test -- --failTaskOnError --release

如果本次变更涉及第三方依赖,更新许可清单:

npm run build-third-party

版本号

发布前需要同时检查三个 package.json 的版本和依赖关系:

  • 根包:package.json
  • engine:packages/engine/package.json
  • widgets:packages/widgets/package.json

workspace 版本可以使用 npm version 更新,例如:

npm version patch -w "deeptwins-cesium-engine" --no-git-tag-version
npm version patch -w "deeptwins-cesium-widgets" --no-git-tag-version

根包版本需要同步更新:

npm version patch --no-git-tag-version

注意:如果 engine 版本变化,依赖 engine 的 widgets 和根包依赖版本也必须同步。

npm 发布

发布顺序必须保持从底层依赖到上层包:

npm run build
npm run build-ts
npm publish -w "deeptwins-cesium-engine"
npm publish -w "deeptwins-cesium-widgets"
npm publish

如果发布到私有 registry,在命令中显式指定 registry:

npm publish -w "deeptwins-cesium-engine" --registry "<registry-url>"
npm publish -w "deeptwins-cesium-widgets" --registry "<registry-url>"
npm publish --registry "<registry-url>"

首次发布或 token 失效时,先登录:

npm login --registry "<registry-url>"

发布后验证

在一个干净项目中安装并验证:

npm install deeptwins-cesium

如果只使用 workspace 包,也分别验证:

npm install deeptwins-cesium-engine deeptwins-cesium-widgets

确认应用能正常导入:

import * as Cesium from "deeptwins-cesium";

Keywords