命令 "npm run tsc" 在离线机器上不起作用 - 尝试编译 node_modules 库
Command "npm run tsc" does not work in an offline machine - trying to compile node_modules libraries
我想在离线机器(A)中执行以下命令但是秒点不起作用:
npm install
npm run tsc
我们有一台机器 (A) 包含我的 TypeScript APP 和另一台机器 (B) 作为 Artifactory(包含所有 npm 依赖项)。
这里的问题:
- 由于代理限制,我无法将机器 A 连接到 B。
我的想法是将我的 TypeScript APP 安装到另一台没有代理限制的机器 (C) 中,在机器 C 中执行以下 "steps"(机器 A 和 C 具有相同的操作系统):
- "npm install"(下载依赖)
- "npm run tsc"(验证每次编译)
- TAR文件夹"node_modules"
- 将TAR从机器C复制到A
- 将 "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
干杯,
帕科
我想在离线机器(A)中执行以下命令但是秒点不起作用:
npm install
npm run tsc
我们有一台机器 (A) 包含我的 TypeScript APP 和另一台机器 (B) 作为 Artifactory(包含所有 npm 依赖项)。
这里的问题:
- 由于代理限制,我无法将机器 A 连接到 B。
我的想法是将我的 TypeScript APP 安装到另一台没有代理限制的机器 (C) 中,在机器 C 中执行以下 "steps"(机器 A 和 C 具有相同的操作系统):
- "npm install"(下载依赖)
- "npm run tsc"(验证每次编译)
- TAR文件夹"node_modules"
- 将TAR从机器C复制到A
- 将 "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
干杯, 帕科