对于 react r,有 create-react-app,它编纂了项目设置中的最佳实践。
节点中缺少某些内容。如果我想在节点上开发和部署打字稿应用程序.js我至少需要 3 个"目标":
- "开始"运行应用的开发版本 测试
- 执行单元测试(例如开玩笑)
- build将打字稿编译为 Node 可以理解的内容 - 用于部署。
对于所有这些功能,有像ts-jest ts-node和tsc这样的工具。
这一切都有些有效,但我得到了各种各样的打嗝。目前,package.json
中的scripts
部分如下所示:
"scripts": {
"build": "tsc -p src",
"start": "yarn run nodemon -e js,json,graphqls,ts,yaml --signal SIGHUP -x ts-node src/index.js",
"test": "rm -Rf dist/ ; yarn run ts-jest --testPathIgnorePatterns=tests/",
},
但这有各种各样的问题。tsc
使用src/tsconfig.json
.另外两个使用./tsconfig.json
.否则,输出将处于./dist/src/
状态,并且目录深度的差异将弄乱对非源文件的相对文件访问。
ts-node
和tsc
似乎报告了不同的错误。例如,tsc
似乎可以意外共存 js 和 ts 文件,而 ts-node 崩溃并带有不透明的emit error
。./dist
的内容混淆了其他工具 - 您从./dist
而不是从./src
加载和执行文件。
那么,如何设置重新加载开发服务器(yarn start
),测试运行程序(yarn test
)和生产编译(yarn build
)都使用相同的配置文件,在相同的目录深度上休息并运行相同?
我认为没有这样的解决方案可以像create-react-app那样开箱即用,除非您找到一些包含您需要的所有内容的样板存储库并使用这些存储库。您可以设置 webpack,它可以用于构建和开发,但配置它可能需要一段时间,尽管在较新的版本中更容易。汇总也是一个很好的解决方案
无论如何,您可能不需要-p src
选项tsc
,这指定了项目的根目录,即tsconfig
所在的位置,而不是源文件的根目录。此选项应指向tsconfig
所在的文件夹,在tsconfig
中,您可以使用include
或files
字段指定源文件的位置。
说到nodemon
运行node
而不是ts-node
并将其注册为模块可能是一个更好的选择:
nodemon -r ts-node/register src/index.js
另外,为了清理您的package.json
您可以将命令行选项移动到nodemon.json
.您可能会找到更多指南,了解如何解决互联网上可能发生的其他冲突,例如处理这些嵌套路径。不确定dist
有什么问题,构建文件夹不应该混淆任何工具