NativeScript / NativeScript/nativescript-cli
CLI Installation fails when excecuting 'postininstall.js / postuninstall.js'
还没有人认领这个 Issue。
- 主要语言
- JavaScript
- 星标
- 1.1k
- 派生
- 204
- 平均合并
- 1 天 9 小时
- 30 天内合并 PR
- 8
描述
- CLI: 7.0.6
- Windows 10 x64
- Node 12.18.3 / Tried Current and 10.
- Npm v6.14.6 / Tried clearing cache and reinstalling everything including node.
I'm trying to install the cli but can't get a work around.
C:\Users\prego\AppData\Roaming\npm\ns -> C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\bin\tns
> nativescript@7.0.6 postinstall C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript
> node postinstall.js
Error: Illegal characters in path.
at pathArg (C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\node_modules\mkdirp\lib\path-arg.js:20:27)
at Function.mkdirpSync [as sync] (C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\node_modules\mkdirp\index.js:18:10)
at FileSystem.createDirectory (C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\lib\common\file-system.js:176:16)
at new CancellationService (C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\lib\common\services\cancellation.js:24:22)
at Yok.resolveConstructor (C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\lib\common\yok.js:313:20)
at Yok.resolveByName (C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\lib\common\yok.js:343:33)
at Yok.resolve (C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\lib\common\yok.js:278:25)
at C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\lib\common\yok.js:308:29
at Array.map (<anonymous>)
at Yok.resolveConstructor (C:\Users\prego\AppData\Roaming\npm\node_modules\nativescript\lib\common\yok.js:303:48)
I tested it with debugger and seems to fail parsing something like 'C:\Users\prego\AppData\Local\Temp\C:\Users\prego\KillSwitches' which is the received path arg at /path-arg.js
And right after this evaluation
const badWinChars = /[*|"<>?:]/
const {root} = parse(path)
if (badWinChars.test(path.substr(root.length))
Logs this error in console.
(node:3216) [DEP0016] DeprecationWarning: 'root' is deprecated, use 'global'
I didn't find anything related to this, just one issue with a similar error but tried everything and it didn't work.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先重现 Windows CLI 安装失败,并跟踪从 postinstall.js 传入 lib/common/services/cancellation.js 和 lib/common/file-system.js 的路径。将生成的路径与 mkdirp path-arg.js 验证进行比较,然后确认在所报告的 Node 和 Windows 配置上,npm 安装可以在没有非法路径的情况下完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- javascript, nodejs
- 领域
- cli
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 30/100