可能它与webpack/memory-fs没有具体关系,但是我得到了RangeError: Maximum call stack size exceeded错误(关于调用堆栈,请参阅下面的内容)。
我发现,在我的情况下,__dirname on Azure (webapp)返回\\100.78.172.13\volume-7-default\8f5ecde749dace2bb57a\4e07195f015b45ce8e9ba255dc901988\site\repository\Source\Website\Content\app\node_modules\webpack\node_modules\memory-fs\lib\normalize.js,而process.cwd()返回D:\home\site\repository\Source\Website\Content\app。
从我这边可以做些什么来配置节点js来返回D:\...而不是\\..?
如何复制:
https://github.com/intellismiths/webapp1存储库。Sync。这将需要10+分钟来完成,这将显示部署是成功的。WEBSITE_NODE_DEFAULT_VERSION更改为6.2.2npm cache cleannode -v检查节点版本。应该是v6.2.2D:\home\site\respository\src\WebApp1npm run buildnpm run build --它应该生成没有错误的wwwroot/app.js。webpack.config.js以包括context: __dirname以修复以前的错误。npm run build更新1
我只是在添加了第二个package.json之后才尝试设置6.2.2运行时,所以项目结构不是最简单的。也许只需将节点设置为6.2.2就会破坏构建。
发布于 2016-07-05 06:59:42
我可以按照你的步骤重复你的问题。我发现关键是将WEBSITE_NODE_DEFAULT_VERSION设置为6.2.2。我发现,如果WEBSITE_NODE_DEFAULT_VERSION在6之下,webpack的任务就能正常工作。
如果您的WEBSITE_NODE_DEFAULT_VERSION模块不需要如此高的版本,请将其设置为6下的版本,例如5.9.0。
根据package.json of angular2 athttps://github.com/angular/angular/blob/master/package.json,angular2存储库似乎需要5.4和6之间的node.js版本。
此外,Azure上web应用程序的根目录是D:\home\site\wwwroot。因此,如果您想在Azure上构建前端项目,您需要定位到D:\home\site\wwwroot\wwwroot\mobile-web-app,然后运行npm run build。
发布于 2016-08-15 15:35:45
它已经在master中得到了修正,并被建议包含在v6.4.0中。
见:https://github.com/nodejs/node/issues/7175#issuecomment-239824532和https://github.com/nodejs/node/pull/8070
发布于 2016-07-07 22:35:18
经过一整天的研究、试验和各种实验,我找到了一个可以接受的解决办法,如果你不愿意降级到Node 5.*
npm install -g webpack)。仅使用6.1.0就可以避免“最大调用堆栈大小超出”错误,但在从node_modules (使用./node_modules/.bin/webpack)运行webpack时却给了我很多解决失败的机会。在全球范围内安插webpack,终于让我过去了。
如果我正确理解了这个问题,__dirname在Node >= 6.2中解析到UNC文件夹路径而不是挂载路径的整个问题将被修复,这里有一个活跃的讨论这里。
https://stackoverflow.com/questions/38173996
复制相似问题