我正在使用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
答案 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