小编All*_*ore的帖子

节点npm windows文件路径太长,无法安装软件包

情况

我想在Windows托管的开发环境中使用gulp和相关的前端工具链.我正试图使用​​像Browser-Sync这样的gulp插件,因为node_modules文件夹图表会让Windows文件路径过长而无法复制文件.我想在Windows上处理这个问题的实用方法,无论Node社区可能提供或不提供什么来改善Windows上的npm可用性.

2个问题

  1. Windows的npm工作流程是否按照预期的方式工作?"运行命令和文件安装"(例如,与OSX上的npm相比,Linux上的npm,ruby gems甚至是nuget)我不想在每次使用时都乱用一堆手动文件编辑,符号链接等在Windows上的npm.

  2. 是否有一个记录良好,稳定的Cygwin工作流,用于npm和节点执行,以解决Windows API文件路径限制?

下面列出的血腥细节......

一般问题

  • 从标准Windows命令提示符运行npm install会在深层嵌套的node_modules层次结构上失败.
  • Per Joyent的github repo线程,这是一个公认的问题,对于以Windows为中心的环境中的开发人员来说没有可行的解决方法.(真的吗?)
  • NT内核支持最多32,767个字符的文件路径长度.
  • Windows API的MAXPATH限制为260个字符.
  • Windows API处理所有主要Windows shell的文件操作,包括:Explorer,CMD,Powershell,MYSgit bash等等.(MS真的吗?NTFS有多久了?)
  • Cygwin支持长文件路径,但由于crlf格式化,npm.cmd无法开箱即用.我在npm上尝试了DOS2Unix转换以使其与Cygwin一起工作,但似乎还存在其他问题.

我目前的黑客

  • 在C:\的根目录上创建一个"n"文件夹作为临时区域,因为这会缩短我的文件夹路径.
  • 在"n"文件夹中运行npm以安装我需要的模块.
  • 启动Cygwin并使用cp将node_modules文件夹复制到目标项目中.
  • 当依赖关系改变或需要启动新项目时,冲洗并重复.

其他难吃的解决方法

符号链接可用于缩短文件路径,但这些是kludgy hacks.随着npm生态系统的增长,嵌套的依赖链将变得太长,这种解决方法变得无法使用.

在我遇到的一个线程中提到了将所有依赖项添加到根文件夹的package.json文件中.虽然这种方法会使文件夹结构变平并防止加载重复模块,但这种解决方法感觉不自然.它还会破坏npm的可用性,持久性和生产力,因为你必须手动或使用一些hacky脚本来安装文件和文件夹.这种方法也容易受到符号链接方法可能最终遭受的同样命运的影响.

windows filepath node.js npm

87
推荐指数
3
解决办法
4万
查看次数

System.UnauthorizedAccessException访问注册表项

我有一些代码调用TFS API并返回团队元数据.(例如团队名称,区域路径等)代码在Visual Studio ASP.NET MVC项目中本地工作正常,但每当我部署到服务器时都会失败.

我尝试过的东西不起作用:

我授予AppPool用户帐户对注册表项的完全控制权(不起作用)此外,尝试向注册表项授予Everyone完全控制权(仍然无效)任何洞察如何为IIS部署的应用程序设置正确的配置权限打击TFS API将不胜感激.(以下错误信息)

这是应用程序生成的错误消息:

System.UnauthorizedAccessException的

Access to the registry key 'HKEY_CURRENT_USER\Software\Microsoft\VSCommon\12.0\ClientServices\TokenStorage\VisualStudio' is denied.

System.UnauthorizedAccessException: Access to the registry key 'HKEY_CURRENT_USER\Software\Microsoft\VSCommon\12.0\ClientServices\TokenStorage\VisualStudio' is denied.
   at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str)
   at Microsoft.Win32.RegistryKey.CreateSubKeyInternal(String subkey, RegistryKeyPermissionCheck permissionCheck, Object registrySecurityObj, RegistryOptions registryOptions)
   at Microsoft.Win32.RegistryKey.CreateSubKey(String subkey, RegistryKeyPermissionCheck permissionCheck, RegistryOptions options)
   at Microsoft.VisualStudio.Services.Common.TokenStorage.RegistryTokenStorageHelper.GetRootKey(String subkeyName)
   at Microsoft.VisualStudio.Services.Common.TokenStorage.RegistryTokenStorage.RetrieveToken(VssTokenKey tokenKey)
   at Microsoft.TeamFoundation.Client.TfsClientCredentialStorage.RetrieveToken(Uri serverUrl, VssCredentialsType credentialType)
   at Microsoft.TeamFoundation.Client.CookieCredential.OnCreateTokenProvider(Uri serverUrl, HttpWebResponse response)
   at Microsoft.TeamFoundation.Client.IssuedTokenCredential.CreateTokenProvider(Uri serverUrl, HttpWebResponse response, IssuedToken failedToken)
   at Microsoft.TeamFoundation.Client.TfsClientCredentials.TryGetTokenProvider(Uri serverUrl, …
Run Code Online (Sandbox Code Playgroud)

iis tfs

11
推荐指数
1
解决办法
1万
查看次数

实习生测试框架是否有任何gulp插件或docs与gulp集成?

实习生测试框架是否有任何gulp插件或docs与gulp集成?

intern gulp

6
推荐指数
1
解决办法
630
查看次数

标签 统计

filepath ×1

gulp ×1

iis ×1

intern ×1

node.js ×1

npm ×1

tfs ×1

windows ×1