为什么babel在USERPROFILEpath中存储.babel.json

我正在azurenetworking应用上运行一个nodejs应用程序,我正在尝试使用npm在其中集成babel。 问题是,巴贝尔正试图获得一个文件

%用户资料%

名为.babel.json,一个不存在的文件。 这很可能通过以下方式安装:

npm install -g babel 

在azure色的networking应用程序,我似乎无法find它(即使在运行npm install -g babel在该网站的kudu)。

我使用kudu将%USERPROFILE%的文件复制到%USERPROFILE%但在Web应用程序中重新启动文件消失。

有没有一种方法可以使网页上的应用程序babel工作?

UPDATE

我没有做一些事情。 当我尝试加载babel/register时出现错误。

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

而我在stream日志中看到的实际错误是

应用程序抛出一个未捕获的exception,并终止:错误:ENOENT,在Object.fs的Object.fs.openSync(fs.js:438:18)上没有这样的文件或目录'D:\ local \ UserProfile.babel.json' .writeFileSync(fs.js:977:15)保存(D:\ home \ site \ wwwroot \ node_modules \ babel \ node_modules \ babel-core \ lib \ api \ register \ cache.js:35:19)。在node.js:906:3启动时(node.js:119:16),Function.Module.runMain(module.js:499:11)处的_tickCallback(node.js:419:13)

该项目在Github上

我有这个相同的问题,通过在我的应用程序设置中设置环境variablesBABEL_DISABLE_CACHE=1来禁用babelcaching来解决这个问题。

你可以在这里阅读更多关于babelcaching: https : //babeljs.io/docs/usage/require/#environment-variables

当我尝试加载babel /注册时出现错误。

请检查(.. \ node_modules \ babel \ node_modules \ babel-core \ lib \ api \ register \ Cache.js)中的Cache.js以查看是否有任何babelcachingpath定义,例如

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

如果你利用这种variables,就需要有BABEL_CACHE_PATH应用程序设置键值和./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网站中的应用程序设置的详细信息。

如果您有任何进一步的疑虑,请随时告诉我们。

您通过BABEL_CACHE_PATH更改.babel.json的商店位置

我认为它比禁用caching更好

BABEL_CACHE_PATH = any_writable_and_exist_dir / babel.cache.json

我从Azure Gallery“Node JS Empty Web应用程序”创build一个nodejs应用程序,然后在Kudu运行命令npm install -g babel 。 我试图重现你的问题,但没有,巴贝尔没有试图访问%USERPROFILE%文件.babel.json。

在Azure上,npm全局模块将被安装到path“D:\ local \ AppData”中。 当您重新启动WebApp时,节点全局模块将被删除。

如果您必须使用节点全局模块,那么可以为节点Webangular色configuration启动任务,以便在Cloud Service中启动Webangular色时安装节点模块。 请参阅https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks/

通常情况下,使用npm install <module-name>在Azure Web Apps的Kudu Debug Console的path“wwwroot”上npm install <module-name>节点模块。

我尝试在path“wwwroot”上安装babel模块并运行命令node_module\.bin\babel ,然后编写一个包含代码require('babel')来成功运行它。 它工作正常。

最好的祝福。