Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 当子文件夹具有长路径文件时,Azure Web角色将不会启动_Git_Azure_Asp.net Web Api_Filepath - Fatal编程技术网

Git 当子文件夹具有长路径文件时,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资产)。我花了一点时间来整理,但本质上,一些嵌套的节点依赖项有太长的文件路

一点非常遥远的帮助和一点挥之不去的问题

在过去的几天里,我一直在努力解决一个非常令人沮丧的Azure Web角色问题。基本上,我的工作流程如下:

  • 创建全新的Azure云服务项目
  • 添加一个C#ASP.NET Web角色(Web API)
  • 构建并确认项目将在本地启动
  • 你应该很高兴来这里。当我将一个Git repo克隆到WebAPI项目目录中时,我的皱纹总是出现在那里(repo在节点中包含一个简单的UI开发服务器和所有编译的UI资产)。我花了一点时间来整理,但本质上,一些嵌套的节点依赖项有太长的文件路径(依赖项有依赖项有依赖项等),并挂起了Web角色

    如果您想自己尝试,您可以在WebAPI项目中包含一个文件夹,其中包含具有长路径的文件,或者构建一个简单的git repo并使用npm安装一些软件包。UI repo的My package.json如下所示:

    {
      "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