0

我使用 Daftmonk 的Yeoman 全栈生成器作为我正在制作的应用程序的脚手架。我想使用 Nodejitsu 的 nodejs 服务来运行它。但是当我部署时,我得到了一系列级联的错误,即使错误在 jitsu 的 cli 中停止,应用程序也无法部署并给出找不到文件。

我猜错误即将到来,因为在我的本地主机上,Grunt 正在将我的应用程序打包到一个 dist/ 文件夹中。而且我认为 Nodejitsu 无法解释这一点。

有没有人成功地在 nodejitsu 上部署了一个以这种方式使用 Grunt 的 nodejs 应用程序?抱歉,如果这个问题含糊不清,我很乐意详细说明,但我迷路了!

4

1 回答 1

0

我还将 yeoman 与 Angular Fullstack 一起使用。有趣的是,这些工具如何如此接近工作,但让您,开发人员在部署时陷入困境。这实际上不是一个答案。这更像是一个承认问题的支持性帖子。这是我发现的。

  • Yeoman 喜欢你运行 grunt serve:dist 来看看缩小版的样子。这会将您的所有生产代码放入 /dist/public
  • Nodejitsu 运行时会运行 node server/app.js
  • 不幸的是,这使得 nodejitsu 在 dist 而不是 dist/public 中查找,因此它找不到文件

------请参阅下文以获得更好的答案-----

我一直在玩这个,事实证明,答案几乎太容易了,尤其是使用 nodejitsu。我将假设您已经安装了 nodejitsu 工具:

[sudo] npm install jitsu -g

我还假设您已按照此处所述进行注册:

https://www.nodejitsu.com/documentation/jitsu/

现在,这真的很容易。

  • 运行grunt。这将缩小和丑化您的代码。我在使用 uglify 时遇到了一些问题(很多人似乎都有),因此我将其添加到 Gruntfile.js 以解决问题。显然 js 结果更大,但头痛因素对我来说是值得的:

将其添加到 initConfig 部分(仅当您收到与从浏览器控制台加载模块相关的错误时才执行此步骤)。

// Uglify Exceptions uglify: { options: { mangle: false } },

运行 grunt 会将所有内容放入 /dist/public。

现在

  • cd /dist
  • jitsu deploy

一切对我来说都很完美。这里的关键是在运行 jitsu deploy 时位于 dist 目录中。这样,它只会部署生产编译的代码。

于 2014-11-10T02:40:19.237 回答