抖音云提供的 nodejs 模板是 typescript 的。刚开始没深入写,就调试一下接口,没觉得 ts 和 js 有啥太大区别,没想到定义个变量都成了老大难的事情。
还是老老实实改成 js。但是又遇到 webpack 打包 node 项目的问题,一时半会没太多时间处理。想想看后端打包个啥?就这几个包。
动一下手术:
1、删除 tsconfig.json。抖音云 node 模板自带的 Dockerfile,会判断是否有 tsconfig.json,有的话就会执行 npm run build。
2、修改 package.json
- 删除 ts 相关的包
- 删除 scripts 下的 “build”: “tsc”
- 启动命令 “node dist/server.js” 改成 “node src/server.js”
3、如果要使用 es 规范,可以在 package.json 里添加 “type”: “module”,或者 .js 文件后缀改成 .mjs
4、导入模块时可能要用完整的 js 文件路径,例如:import { test } from ‘./test.js’
5、另外需要注意,抖音云调用的域名有自己专属的域名,而且目前只支持 http 协议,可以看云调用官方文档,例如 developer.toutiao.com 对应的云调用域名是 developer-toutiao-com.openapi.dyc.ivolces.com,我在这上面坑了好长时间,后面补看文档才发现。如果没按这个来,请求外部接口时会报错:
FetchError: request to failed, reason: unable to verify the first certificate at ClientRequest