可以在tsconfig中定义多个模块吗?

时间:2016-02-08 09:35:43

标签: node.js typescript angular

好的,所以我正在使用节点服务器制作angular2应用程序。我跟着5min tutorial,所以我使用“system”作为模块系统。但是,我使用的是简单的节点快速服务器,而不是他们在教程中使用的方式。我也在打字稿中写这个,但它也被编译成导入模块的“系统”风格。当运行服务器时,我得到System is not defined

  • 如何修复,以便在启动服务器时定义系统?
  • 在编写节点服务器时,是否不建议在tsconfig文件中使用“system”作为编译器选项“module”?
  • 我可以使用例如“commonjs”编译服务器代码,使用“system”编译角度前端吗?
  • 如果我不在前端使用“system”,我如何配置模块加载(他们在index.html中的小脚本)呢?

2 个答案:

答案 0 :(得分:0)

我建议将前端和后端应用程序拆分为不同的项目,并使它们通过REST服务进行通信。我的意思是服务器应用程序将提供服务,而前端应用程序将使用AJAX消费它。

这样您就可以确定您使用的工具之间不会发生冲突。例如,SystemJS的使用与否。您可以在Angular2应用程序中自由使用SystemJS,如angular.io网站的5min教程和Node / Express应用程序的commonjs所述。

以下文章介绍了如何执行此操作:

答案 1 :(得分:0)

正如@Thierry Templier建议的那样,如果您还没有这样做,则需要将代码拆分为/ client和/ server以使其更易于维护和结构化。

您可以创建两个tsconfig.json文件,将一个放入/ server,将其他文件放入/ client文件夹。

  • /服务器
    • tsconfig.json(with module:commonjs)
  • /客户端
    • tsconfig.json(带模块:systemjs)

从shell调用tsc时,使用--project命令:

compile files('libs/Jama-1.0.3.jar')