为什么babel在userprofile路径中存储.babel.json

a14dhokn  于 2021-06-20  发布在  Kudu
关注(0)|答案(4)|浏览(412)

我在azureweb应用上运行一个nodejs应用程序,我正在尝试在其中使用npm集成babel。问题是Babel试图访问
%用户配置文件%
名为.babel.json,一个不存在的文件。这很可能是由以下人员安装的:

npm install -g babel

在azure web应用程序上,我似乎根本找不到它(即使在运行之后) npm install -g babel 在Kudu的网站)。
我把文件抄了进去 %USERPROFILE% 我自己 %USERPROFILE% 使用kudu,但在web应用程序重新启动文件消失。
有没有办法让babel在网络应用上工作?
更新
我确实遗漏了一些事情。我尝试加载时出现错误 babel/register .

require('babel/register')({
  optional: ["es7.asyncFunctions"]
});

我在流日志中看到的实际错误是
应用程序引发了未捕获的异常并被终止:错误:enoont,没有这样的文件或目录'd:\local\userprofile.babel.json'在object.fs.opensync(fs.js:438:18)在object.fs.writefilesync(fs.js:977:15)在save(d:\home\site\wwwroot\node\u modules\babel\node\u modules\babel core\lib\api\register\cache.js:35:19)在process.\u ticklack(node.js:419:13)在function.module.runmain(module.js:499:11)在启动时(node.js:119:16)在node.js:906:3
项目在github上

dgenwo3n

dgenwo3n1#

我也遇到了同样的问题,通过设置环境变量禁用babel缓存来解决 BABEL_DISABLE_CACHE=1 在我的应用程序设置中。
您可以在此处阅读更多有关Babel缓存的信息:https://babeljs.io/docs/usage/require/#environment-变量

olhwl3o2

olhwl3o22#

当我尝试加载babel/寄存器时出现错误。
请检查cache.js(..\node\u modules\babel\node\u modules\babel core\lib\api\register\cache.js)以查看是否有任何babel缓存路径定义,例如。

process.env.BABEL_CACHE_PATH || _path2["default"].join(_homeOrTmp2["default"], ".babel.json");

如果你利用这类变量,就需要有babel\u cache\u path app设置key和值./cache,否则任何有babel的东西都不能在azure上工作。请参阅http://blog.syntaxc4.net/post/2012/07/26/accessing-app-settings-configured-in-microsoft-azure-web-sites-using-php-and-node-js.aspx 如果您想知道使用node.js访问azure网站中应用程序设置的详细信息。
如果您有任何进一步的问题,请随时告诉我们。

30byixjq

30byixjq3#

您更改的存储位置 .babel.json 通过巴别塔缓存路径
我认为这比禁用缓存要好
babel\u cache\u path=任何\u可写\u和\u存在\u dir/babel.cache.json

1szpjjfi

1szpjjfi4#

我从azuregallery“node js empty web app”创建一个nodejs应用程序并运行命令 npm install -g babel 在Kudu。我试图重现您的问题,但失败的是,Babel没有试图访问文件。babel.json在%userprofile%。
在azure上,npm全局模块将安装到路径“d:\local\appdata”中。重新启动webapp时,节点全局模块将被删除。
如果必须使用节点全局模块,则可以为节点web角色配置启动任务,以便在云服务中启动web角色时安装节点模块。请参阅https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks/.
通常,通过使用 npm install <module-name> 在azure web apps上kudu调试控制台的路径“wwwroot”。
我尝试在路径“wwwroot”处安装babel模块并运行命令 node_module\.bin\babel ,并编写一个包含代码的文件 require('babel') 成功运行它。很好用。
致以最诚挚的问候。

相关问题