【问题标题】:Yeoman Full-Stack Generator and Nodejitsu deploymentYeoman 全栈生成器和 Nodejitsu 部署
【发布时间】:2014-12-08 01:46:37
【问题描述】:
我使用 Daftmonk 的 Yeoman Full-stack generator 作为我正在制作的应用程序的脚手架。我想使用 Nodejitsu 的 nodejs 服务来运行它。但是当我部署时,我得到了一系列级联的错误,即使错误在 jitsu 的 cli 中停止,应用程序也无法部署并给出找不到文件。
我猜测错误即将到来,因为在我的本地主机上,Grunt 正在将我的应用程序打包到一个 dist/ 文件夹中。而且我认为 Nodejitsu 无法解释这一点。
有没有人成功地在 nodejitsu 上部署了一个以这种方式使用 Grunt 的 nodejs 应用程序?抱歉,如果这个问题含糊不清,我很乐意详细说明,但我迷路了!
【问题讨论】:
标签:
node.js
angularjs
gruntjs
yeoman
nodejitsu
【解决方案1】:
我还将 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。
现在
一切对我来说都很完美。这里的关键是在运行 jitsu deploy 时位于 dist 目录中。这样,它只会部署生产编译的代码。