Nuxt-Express部署到Azure问题

时间:2017-08-26 18:57:30

标签: node.js express azure-web-sites iisnode nuxt.js

我正在尝试使用部署到运行Node的Azure Web App的快速Web应用程序的nuxt。这就是我到目前为止所做的事情:

  1. 使用VSTS创建构建
  2. 使用VSTS版本(使用MS的Azure App Service Deploy任务)将构建部署到Azure Web App
  3. 我还针对几个已关闭的问题做了一些更改:
    • 更改脚本以使用完全限定的路径,例如" node ./node_modules/nuxt/bin/nuxt start"根据此issue
    • 中的回复
    • 在此issue中为每个响应创建了一个存根server.js,但我确实需要将对nuxt.Server的调用更改为nuxt.listen(端口,主机)。
  4. 根据azure中使用的iisnode.yml文件启用日志记录到iisnode日志文件夹
  5. 以下是现在返回的日志信息,这让我觉得它仍然是一个配置问题:

    Sat Aug 26 2017 16:12:45 GMT+0000 (Coordinated Universal Time): Application has thrown an uncaught exception and is terminated:
    SyntaxError: Unexpected token {
        at Module._compile (module.js:434:25)
        at Object..js (module.js:464:10)
        at Module.load (module.js:353:31)
        at Function._load (module.js:311:12)
        at Module.require (module.js:359:17)
        at require (module.js:375:17)
        at Object.<anonymous> (D:\Program Files\iisnode\interceptor.js:459:1)
        at Module._compile (module.js:446:26)
        at Object..js (module.js:464:10)
        at Module.load (module.js:353:31) 
    
  6. 以下是我根据3中的注释创建的 server.js 文件的内容:

    const fs = require('fs');
    const { Nuxt } = require('nuxt');
    const resolve = require('path').resolve;  
    
    const rootDir = resolve('.');
    const nuxtConfigFile = resolve(rootDir, 'nuxt.config.js');  
    
    let options = {};
    if (fs.existsSync(nuxtConfigFile)) {
      options = require(nuxtConfigFile);
    }
    if (typeof options.rootDir !== 'string') {
      options.rootDir = rootDir;
    }
    options.dev = false; // Force production mode (no webpack middleware called)  
    
    const nuxt = new Nuxt(options);  
    
    const port = process.env.PORT;
    const host = process.env.HOST;  
    
    nuxt.listen(port, host);  
    

    如果需要,我可以为您提供 web.config iisnode.yml 文件,如果这些文件在查看azure Web应用程序的配置时会有所帮助。

    如果你想回答这个问题over there

    ,我也在nuxt.js github repo中发布了这个问题。

0 个答案:

没有答案