技术细节:
- SurfaceBook/win10更新;
- Node.js 8.9.4 x64
- 使用管理员帐户
我们的目标是拿一个应用程序(网络应用程序没什么特别的),让它在这台笔记本电脑上运行。它在我的其他设备(Win7和Linux)上运行得很好。
我试着用StackOverflow的其他答案来解决这个问题。我经历了:删除文件(Appdata/roaming/npm & npm-cache);卸载node.js,重新安装等等。没有任何效果。
我有一个奇怪的消息时,使用NPM(赢版本)在node.exe提示。但它不说话下Git bash太多。
C:\Users\TexMex>npm -v
'CALL "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs\\node_modules\npm\bin\npm-cli.js" prefix -g' n’est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
5.6.0
C:\Users\TexMex>
字符串
Git Bash更安静。这并不意味着它没有遇到同样的问题。“PATH”环境变量S根据其他StackOverflow答案正确设置。仍然......它工作......好吧,只要它工作,它就不是问题。
当安装软件包时,一切都很顺利,直到@Angular/Angular。我每次都以这个“uglify postinstall”错误结束。
[...]
34735 warn notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
34736 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS: darwin
34736 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch: any
34736 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS: win32
34736 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
34737 warn optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\@angular\cli\node_modules\node-sass):
34738 warn optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node scripts/install.js`
34738 warn optional SKIPPING OPTIONAL DEPENDENCY: spawn C:\WINDOWS\system32\cmd.exe; ENOENT
34739 verbose optional SKIPPING OPTIONAL DEPENDENCY:
34739 verbose optional Failed at the [email protected] install script.
34739 verbose optional SKIPPING OPTIONAL DEPENDENCY: This is probably not a problem with npm. There is likely additional logging output above.
34740 verbose stack Error: [email protected] postinstall: `node lib/post_install.js`
34740 verbose stack spawn C:\WINDOWS\system32\cmd.exe; ENOENT
34740 verbose stack at _errnoException (util.js:1022:11)
34740 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
34740 verbose stack at onErrorNT (internal/child_process.js:372:16)
34740 verbose stack at _combinedTickCallback (internal/process/next_tick.js:138:11)
34740 verbose stack at process._tickCallback (internal/process/next_tick.js:180:9)
34741 verbose pkgid [email protected]
34742 verbose cwd C:\Users\TexMex\Desktop\DEV\git
34743 verbose Windows_NT 10.0.16299
34744 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "--save-dev" "@angular/cli@latest"
34745 verbose node v8.9.4
34746 verbose npm v5.6.0
34747 error file C:\WINDOWS\system32\cmd.exe;
34748 error path C:\WINDOWS\system32\cmd.exe;
34749 error code ELIFECYCLE
34750 error errno ENOENT
34751 error syscall spawn C:\WINDOWS\system32\cmd.exe;
34752 error [email protected] postinstall: `node lib/post_install.js`
34752 error spawn C:\WINDOWS\system32\cmd.exe; ENOENT
34753 error Failed at the [email protected] postinstall script.
34753 error This is probably not a problem with npm. There is likely additional logging output above.
34754 verbose exit [ 1, true ]
型
问题是,它阻止了@angular/software目录的创建和相应的文件被“登陆”在这里(全局安装与否)。“ng”命令不可用(这很尴尬)。
我做了功课,试了所有我能找到的StackOverflow答案;我没有办法了。
也许这是Windows注册表中的一些喷射(以前安装的nodeJS)??但是如果有,从注册表中删除的键是什么?在这种情况下清理注册表是否相关?它是特定于Surface Book的吗?所有这些都很奇怪。
所以最后一个问题是:我如何使它工作,100%肯定的镜头?
瓶子掉进海里了...救命。
1条答案
按热度按时间dxpyg8gm1#
我想我找到了问题的根源。
似乎一个在线的微软帐户(使用W10和SurfaceBooks时很容易激活)禁止软件修改用户主目录中的某些目录。这个目录(或其中的一部分)以某种方式与微软服务同步。
所以你不能“弄乱”它,就像它只是本地的一样。当使用服务时,这些目录看起来像系统保护的目录。当不使用它时,它们只是隐藏的,就像你可能知道的那样。“AppData”等是同步的。
另外,我建议将NodeJs/Angular与Docker一起使用。特别是Angular自版本4以来定期更新。