可能它与 webpack/memory-fs 没有特别相关,但我得到了RangeError: Maximum call stack size exceeded
错误(请参阅下面的调用堆栈)。
我发现,那__dirname
在 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
.
我这边可以做些什么来配置 Node js 返回D:\...
代替\\..
?
Gist
如何重现:
- 克隆
https://github.com/intellismiths/webapp1
存储库。
- 创建新的 Azure Web App(默认设置)。
- 配置部署源以使用 GitHub。
- Click
Sync
。需要 10 多分钟才能完成,将显示部署成功。
- 转到 Azure 中的应用程序设置并更改
WEBSITE_NODE_DEFAULT_VERSION
to 6.2.2
- 转到 kudu 页面并打开 powershell 控制台。
- Execute
npm cache clean
- 通过执行检查节点版本
node -v
。它应该是v6.2.2
- 在 Azure 上,导航到
D:\home\site\respository\src\WebApp1
- Execute
npm run build
-
在控制台中,您应该看到很多错误,表明模块无法解析.
- 选修的。测试
npm run build
在你的本地机器上 - 它应该产生wwwroot/app.js
没有错误。
- Update
webpack.config.js
包括context: __dirname
修复以前的错误。
- Execute
npm run build
- 在控制台中,您应该看到“RangeError:超出最大调用堆栈大小”错误。
Update 1
我只是在添加第二个 package.json 后才尝试设置 6.2.2 运行时,因此项目结构并不是最简单的。也许只是将节点设置为 6.2.2 会破坏构建。
我可以按照您的步骤重现您的问题。我发现关键点是设置WEBSITE_NODE_DEFAULT_VERSION
to 6.2.2
。我发现 webpack 任务工作得很好,如果WEBSITE_NODE_DEFAULT_VERSION
是在6
.
请降级设置WEBSITE_NODE_DEFAULT_VERSION
到下面的版本6
e.g. 5.9.0
如果你的node.js模块不需要这么高的版本。
并根据package.json
Angular2位于https://github.com/angular/angular/blob/master/package.json,似乎Angular2存储库需要之间的node.js版本5.4
and 6
.
此外,Azure Web Apps 上的 Web 应用程序的根目录是D:\home\site\wwwroot
。因此,如果您想在 Azure Web Apps 上构建前端项目,您需要找到D:\home\site\wwwroot\wwwroot\mobile-web-app
然后运行npm run build
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)