Sails js – 创build一个资产的副本

我们正在考虑将我们的项目移植到Sails.js。 我们的静态资产相当大 – 超过3 GB。 所以,这已经造成了一个严重的限制,因为它使我们的应用程序的规模翻了一番。 我们可以修改Sails js来防止这种默认行为,或者可以推荐一些其他的框架吗?

Sails使用Grunt在每次解除应用程序时将您的资源复制到(默认)干净的.tmp / public文件夹中。 这使您可以select哪些资产应该公开,还可以让您在不同的环境中编译和缩小资产。 这不一定是你的应用程序的大小的两倍,除非你把版本控制下的.tmp ,但如果你有很多的资产,它肯定会让你的应用启动缓慢。

最简单的解决scheme是closuresGrunt并直接从assets文件夹中提供静态资源。 要做到这一点:

  1. 删除Gruntfile.js (或将其重命名为Gruntfile.js.bak
  2. 创build一个名为config / assets.js的新configuration文件(或任何你喜欢的名称无关紧要),并放在里面:

    module.exports = { paths: { public: __dirname+"/../assets" } }; 

把它放在一个新的configuration文件而不是config / local.js的原因是, local.js默认在你的.gitignore文件中,所以如果你使用Git进行版本控制,你必须重新创build一个文件当你在新机器上安装应用程序。

就像我说的,这是最简单的解决scheme,但它有一些缺点:

  • 在生产模式下不再需要自动编译/缩小资产
  • 不再使用资产pipe道自动链接Javascript / CSS文件

如果你想保留这些function,但仍然避免将大量文件复制到.tmp文件中,那么答案就在于修改默认的Grunt任务(这就是他们在你的项目中所做的)。

在Sails.js 0.11中,您可以将下一个代码添加到.sailsrc文件中:

 “钩子”:{
  “咕噜”:假
 }