Git 当子文件夹具有长路径文件时,Azure Web角色将不会启动
一点非常遥远的帮助和一点挥之不去的问题 在过去的几天里,我一直在努力解决一个非常令人沮丧的Azure Web角色问题。基本上,我的工作流程如下:Git 当子文件夹具有长路径文件时,Azure Web角色将不会启动,git,azure,asp.net-web-api,filepath,Git,Azure,Asp.net Web Api,Filepath,一点非常遥远的帮助和一点挥之不去的问题 在过去的几天里,我一直在努力解决一个非常令人沮丧的Azure Web角色问题。基本上,我的工作流程如下: 创建全新的Azure云服务项目 添加一个C#ASP.NET Web角色(Web API) 构建并确认项目将在本地启动 你应该很高兴来这里。当我将一个Git repo克隆到WebAPI项目目录中时,我的皱纹总是出现在那里(repo在节点中包含一个简单的UI开发服务器和所有编译的UI资产)。我花了一点时间来整理,但本质上,一些嵌套的节点依赖项有太长的文件路
{
"name": "BreaksMyHeart",
"version": "1.0.0",
"description": "Wont let the web role start",
"main": "index.js",
"dependencies": {
"co-views": "^0.3.0",
"flux": "^2.0.1",
"gulp-minify-css": "^1.0.0",
"jade": "^1.9.2",
"koa": "^0.18.1",
"koa-compress": "^1.0.8",
"koa-route": "^2.4.0",
"koa-static": "^1.4.9",
"object-assign": "^2.0.0",
"react": "^0.13.1"
},
"devDependencies": {
"bower": "^1.4.1",
"browserify": "^9.0.4",
"coffee-reactify": "^3.0.0",
"gulp": "^3.8.11",
"gulp-batch": "^1.0.5",
"gulp-coffee-react-transform": "0.0.2",
"gulp-coffeelint": "^0.4.0",
"gulp-concat": "^2.5.2",
"gulp-imagemin": "^2.2.1",
"gulp-nodemon": "^2.0.2",
"gulp-react": "^3.0.1",
"gulp-rename": "^1.2.2",
"gulp-sourcemaps": "^1.5.1",
"gulp-uglify": "^1.1.0",
"gulp-util": "^3.0.4",
"gulp-watch": "^4.2.4",
"imagemin-pngquant": "^4.0.0",
"koa-logger": "^1.2.2",
"merge-stream": "^0.1.7",
"mocha": "^2.2.4",
"supertest": "^0.15.0",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0",
"vinyl-transform": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Mike",
"license": "MIT"
}
要明确的是,我没有在项目中包括node_modules目录,但这似乎没有什么区别
Azure Compute Emulator将警告您角色的启动时间比平时长。请继续等待,大约10分钟后我就失去了耐心(在一台有i7和16G内存的开发机器上)
若要解决此问题,请尝试删除该文件夹。您可能会发现这不是一项简单的任务,因为文件路径太长;天真的
rmdir UIRepo
从命令提示符下执行操作是不够的,您需要尝试类似的操作
还有谁能证实吗?我已经解决了这个问题,将UI repo放在其他地方,并适当地重新打印gulp构建任务。这是节点模块的常见问题,因为Windows上有260个字符的路径长度限制。当超过此值时,访问这些长路径的程序将出现您提到的问题。 为了摆脱长路径,你可以考虑使用: 这将基于您当前的node_模块结构生成
npm shrinkwrap.json
,该结构将用于驱动包依赖项的进一步安装,而无需嵌套(如果确实不需要,因为版本不同)
“包覆面提取”命令已基于锁定了依赖项
节点_模块中当前安装的内容。当npm安装时
在包根目录中包含npm-shrinkwrap.json的包
包覆面提取文件(而不是package.json文件)完全驱动
安装该包及其所有依赖项(递归)
谢谢狂暴者,我喜欢这个解决方案,并将尝试一下。管理两个源代码控制可能会令人厌烦。
npm shrinkwrap