gpt4 book ai didi

node.js - Azure 和 Node js __dirname

转载 作者:搜寻专家 更新时间:2023-10-31 23:32:36 26 4
gpt4 key购买 nike

可能它与 webpack/memory-fs 没有特别相关,但我收到了 RangeError: Maximum call stack size returned 错误(请参阅下面的调用堆栈)。

我发现,Azure(webapp)上的 __dirname 返回 \\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

如何重现:

  1. 克隆 https://github.com/intellismiths/webapp1 存储库。
  2. 创建新的 Azure Web 应用(默认设置)。
  3. 配置部署源以使用 GitHub。
  4. 点击同步。需要 10 多分钟才能完成,它将显示部署成功。
  5. 转到 Azure 中的应用程序设置,并将 WEBSITE_NODE_DEFAULT_VERSION 更改为 6.2.2
  6. 前往 kudu 页面并打开 powershell 控制台。
  7. 执行npm缓存清理
  8. 通过执行node -v检查 Node 版本。它应该是v6.2.2
  9. 在 Azure 上,导航至 D:\home\site\respository\src\WebApp1
  10. 执行npm run build
  11. 在控制台中,您应该会看到很多错误,表明模块无法解析
  12. 可选。在本地计算机上测试 npm run build - 它应该生成 wwwroot/app.js 而不会出现错误。
  13. 更新 webpack.config.js 以包含 context: __dirname 以修复之前的错误。
  14. 执行npm run build
  15. 在控制台中,您应该会看到“RangeError:超出最大调用堆栈大小”错误。

更新1

我只是在添加第二个package.json后才尝试设置6.2.2运行时,因此项目结构并不是最简单的。也许只是将 Node 设置为 6.2.2 会破坏构建。

最佳答案

我可以按照您的步骤重现您的问题。我发现关键点是将 WEBSITE_NODE_DEFAULT_VERSION 设置为 6.2.2。我发现如果 WEBSITE_NODE_DEFAULT_VERSION 位于 6 之下,webpack 任务就可以正常工作。

请将设置 WEBSITE_NODE_DEFAULT_VERSION 降级至 6 下的版本,例如5.9.0 如果你的node.js模块不需要这么高的版本。
并且根据https://github.com/angular/angular/blob/master/package.json上的angular2的package.json,看来Angular2存储库需要之间的node.js版本>5.46

此外,Azure Web Apps 上 Web 应用程序的根目录为 D:\home\site\wwwroot。因此,如果您想在 Azure Web Apps 上构建前端项目,您需要找到 D:\home\site\wwwroot\wwwroot\mobile-web-app 然后运行 ​​npm run build .

关于node.js - Azure 和 Node js __dirname,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38173996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com