我有一个根项目,它同时包含服务器和客户端应用程序,其结构大致如下:
-- server
-- node_modules
-- index.ts
-- package.json
-- ...
-- client
-- node_modules
-- index.ts
-- package.json
-- html/
-- css/
-- ...
我正在寻找最佳方法来编译所有这些,并使服务器可以访问客户端静态文件。我通过将outDir
项目的../build
设置为server
并将../build/static
项目的其设置为client
来进行尝试。不幸的是,这没有用,因为tsc
在项目的根文件夹之外的文件不能很好地工作(例如,无法从构建中调用节点模块,如果我错了,请纠正我!)。另外,如果我可以侦听打字稿文件中的更改并在检测到此类更改时自动构建该文件,那将非常好。
我研究了gulp,Webpack和parcel之类的选项,但我不确定最佳和最简单的解决方案是什么。
[让我工作的一种方法是为server
和client
使用一个项目。以下结构:
-- node_modules
-- package.json
-- index.ts
-- server/
-- static/
-- html/
-- ...
但是通过这种方式,客户端和服务器端都只有一个node_modules
文件夹和一个package.json
文件,这可能不是最好的方法(再次,如果我错了,请纠正我!)。
[crisp-react具有服务器和客户端项目。
与您的设置相似:-项目位于server/
和client/
目录中-每个项目都有自己的package.json
和node_modules/
-使用打字稿-服务器可以访问客户端静态文件
有什么不同:-每个客户端组件的CSS没有css/
目录位于该组件的.tsx文件中-没有html/
目录,因为.html文件是自动生成的。