我在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上
4条答案
按热度按时间dgenwo3n1#
我也遇到了同样的问题,通过设置环境变量禁用babel缓存来解决
BABEL_DISABLE_CACHE=1
在我的应用程序设置中。您可以在此处阅读更多有关Babel缓存的信息:https://babeljs.io/docs/usage/require/#environment-变量
olhwl3o22#
当我尝试加载babel/寄存器时出现错误。
请检查cache.js(..\node\u modules\babel\node\u modules\babel core\lib\api\register\cache.js)以查看是否有任何babel缓存路径定义,例如。
如果你利用这类变量,就需要有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网站中应用程序设置的详细信息。
如果您有任何进一步的问题,请随时告诉我们。
30byixjq3#
您更改的存储位置
.babel.json
通过巴别塔缓存路径我认为这比禁用缓存要好
babel\u cache\u path=任何\u可写\u和\u存在\u dir/babel.cache.json
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')
成功运行它。很好用。致以最诚挚的问候。