@oxiaom/adoremix 1.0.33 → 1.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/paths.js +19 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxiaom/adoremix",
3
- "version": "1.0.33",
3
+ "version": "1.0.34",
4
4
  "description": "AdoreMix broadcast server - cross-platform installer, runner and service manager",
5
5
  "bin": {
6
6
  "adoremix": "./bin/adoremix.js"
package/src/paths.js CHANGED
@@ -34,6 +34,25 @@ function loadNative() {
34
34
  );
35
35
  throw _loadError;
36
36
  }
37
+ // 版本一致性校验:主包与平台子包必须同版本。
38
+ // 国内镜像(npmmirror 等)对平台子包同步可能滞后,导致 install 时嵌套了旧版子包,
39
+ // 应用就会加载到旧 native(如旧 ICU 版本),运行报缺库。这里给出明确指引。
40
+ try {
41
+ const mainVer = require('../package.json').version;
42
+ const subPkg = require(`${PLATFORM_PKG}/package.json`);
43
+ if (subPkg && subPkg.version && mainVer && subPkg.version !== mainVer) {
44
+ _native = null;
45
+ _loadError = new Error(
46
+ `平台子包版本不一致:主包 @oxiaom/adoremix@${mainVer},但加载到 ${PLATFORM_PKG}@${subPkg.version}。\n` +
47
+ ` 通常是 npm 镜像(npmmirror 等)没同步最新子包导致。请用官方源重装:\n` +
48
+ ` npm install -g @oxiaom/adoremix@${mainVer} --registry https://registry.npmjs.org`
49
+ );
50
+ throw _loadError;
51
+ }
52
+ } catch (e) {
53
+ if (e === _loadError) throw e;
54
+ // package.json 读不到等情况忽略,不阻塞
55
+ }
37
56
  return _native;
38
57
  }
39
58