命令 "npm run tsc" 在离线机器上不起作用 - 尝试编译 node_modules 库

Command "npm run tsc" does not work in an offline machine - trying to compile node_modules libraries

我想在离线机器(A)中执行以下命令但是秒点不起作用:

  1. npm install
  2. npm run tsc

我们有一台机器 (A) 包含我的 TypeScript APP 和另一台机器 (B) 作为 Artifactory(包含所有 npm 依赖项)。

这里的问题:

我的想法是将我的 TypeScript APP 安装到另一台没有代理限制的机器 (C) 中,在机器 C 中执行以下 "steps"(机器 A 和 C 具有相同的操作系统):

  1. "npm install"(下载依赖)
  2. "npm run tsc"(验证每次编译)
  3. TAR文件夹"node_modules"
  4. 将TAR从机器C复制到A
  5. 将 "node_module.tar" 解压为 "node_module" 文件夹

这里的问题是在机器A中执行"npm run tsc"后出现了很多"node_modules"错误,我不明白为什么。我与您分享了数百个示例中的三个示例:

node_modules/rxjs/Scheduler.d.ts(53,67): error TS1109: Expression expected.
node_modules/rxjs/Scheduler.d.ts(53,83): error TS1109: Expression expected.
node_modules/rxjs/Scheduler.d.ts(53,86): error TS1005: ';' expected.

仅供参考 - 我可以将机器 A 更改为临时在线并且 "npm install" + "npm run tsc" 正常工作。然后,我觉得之前的"steps".

有什么不好的地方

关于我的安装的信息:

bash-4.2# npm -v
3.10.10
bash-4.2# node -v
v6.9.5
bash-4.2# tsc -v
Version 1.8.10

非常感谢!

我终于在 "node_modules" 文件夹中找到了问题。

事实证明:

  • 当我创建 TAR 文件时,压缩文件未与 "Linux links" 一起导出到其他文件。
  • 此问题发生在文件夹 "node_modules/.bin" 中。此文件夹包含 "Linux links" 属于 "node_modules" 个子文件夹的其他文件。
  • 在我的例子中,有一个名为“node_modules/.bin/tsc 的 link,它没有在 TAR 中用 link 导出。
  • 另一方面,在解压缩 TAR 后,引用的文件 "node_modules/typescript/bin/tsc" 在没有执行权限的情况下被复制 (644)。
  • 虽然修复了Linux link,但是执行权限被禁用了,那我得把权限改成755了。

然后,修复它的步骤如下(在 "node_modules" 内)文件夹:

  • rm.bin/tsc
  • ln -s ../typescript/bin/tsc tsc
  • chmod 744 打字稿/bin/tsc

干杯, 帕科