如何部署使用sucrase的api-Heroku

时间:2019-11-10 02:29:41

标签: node.js express heroku

我正在使用sucrase不使用import的commonjs sintax。为此,我已经安装了sucrase依赖项,并在节点运行每个文件后将nodemon配置设置为注册sucrase。

我的nodemon配置:

{
  "execMap": {
    "js": "node -r sucrase/register"
  }
}

但是问题在于它只是在开发环境中运行,而我没有找到使用procfile运行应用程序的解决方案

web: node ./src/server.js & node ./src/queue.js

我的heroku错误日志:

2019-11-10T01:59:01.073862+00:00 app[web.1]: import Bee from 'beequeue';
2019-11-10T01:59:01.073864+00:00 app[web.1]: ^^^^^^
2019-11-10T01:59:01.073866+00:00 app[web.1]: 
2019-11-10T01:59:01.073867+00:00 app[web.1]: SyntaxError: Cannot use import statement outside a module

1 个答案:

答案 0 :(得分:1)

Sucrase只是为了发展,在幕后它需要将导入内容转换为常见的js sintax 。因此,要部署您的应用,您可以先运行Sucrase文档中提供的 build命令,然后更改procfile的命令。

要生成内部版本,请运行以下命令:

 sucrase ./src -d /build --transforms javascript,imports 

如果您使用的是Typescript:

 sucrase ./src -d /build --transforms typescript,imports 

,然后在您的procfile中:

web: node ./build/server.js & node ./build/queue.js
  • 但是由于测功机不建议在heroku上部署,您可以在服务器中使用这些构建,并可以使用travis ci,circle ci或buddy等具有良好界面的ci服务,而无需执行很多配置。