为什么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')
来成功运行它。 它工作正常。
最好的祝福。