我正在使用在Typescript中编写的node.js应用程序,这意味着它需要在运行之前编译为JS。由于我来自java / jvm背景,您将预构建的软件包发送到服务器并在那里运行,我有点害怕部署的方式,您将代码推送到git并且它正在构建/首先在服务器上编译然后运行。
我不喜欢它有两个主要原因:
我发现NAR https://github.com/h2non/nar或多或少是我想要的,但它有一些缺点(不适用于一些具有原生扩展名的deps。)
我的问题是:是否还有其他"理智"部署node.js部署的方式比服务器上npm install
和tsc
的这种风险组合?或者我应该让那个下沉并以这种方式做到这一点?
说实话,我不相信没有更明智/可靠的选择。
答案 0 :(得分:0)
您可以做什么(但可能还有其他完全有效的方法)是在本地(或在CI服务上)构建项目,并且只在您认为它有效时(测试等)部署此构建版本。 / p>
这样一来,如果发生了一些不好的事情,例如失败的npm或编译错误,你就不会部署任何东西,并且你有时间解决这个问题。
例如,我曾经有一个gulp任务(但它可以是其他任何东西:Grunt,一个简单的npm脚本......)克隆一个生产存储库并将项目构建到这个目录中
这样,我可以检查我的构建是否有效。如果是,我创建一个新提交并将其推送到 production repo,它以您需要的方式提供(例如,在Heroku实例上)。
<强>赞成强>
npm install
或tsc
build <强>缺点强>
答案 1 :(得分:0)
是否有任何其他“理智”的方式来进行部署node.js部署,而不是npm install和服务器上的tsc这种风险组合
package.json
+ npm install
+ tsc
是实现目标的方法。没什么风险的。
只需使用npm script
:https://github.com/TypeStrong/ntypescript#npm-scripts