Sails js - 创建资产副本

时间:2014-09-30 11:21:20

标签: javascript node.js sails.js

我们正在考虑将项目移植到Sails.js。我们的静态资产非常庞大 - 超过3 GB。因此,这造成了严重的限制,因为它使我们的应用程序的大小翻倍。我们可以修改Sails js以防止这种默认行为,还是可以推荐一些其他框架?

2 个答案:

答案 0 :(得分:8)

每次解除应用时,Sails都会使用Grunt将资源复制到(默认情况下)干净的 .tmp / public 文件夹中。这允许您选择应公开哪些资产,还允许您在不同环境中编译和缩小资产。除非您将 .tmp 置于版本控制之下,否则这不一定会使应用的大小翻倍,但如果您拥有大量资源,那么肯定会让您的应用启动缓慢。

此处最简单的解决方案是关闭Grunt并直接从资产文件夹中提供静态资源。要做到这一点:

  1. 删除 Gruntfile.js (或将其重命名为 Gruntfile.js.bak
  2. 创建一个名为 config / assets.js 的新配置文件(或者您喜欢的任何名称;名称无关紧要),并将以下内容放入:

    module.exports = {
      paths: {
        public: __dirname+"/../assets"
      } 
    };
    
  3. 将其放入新配置文件而不是 config / local.js 的原因是 local.js 位于 .gitignore 默认情况下是文件,因此如果您使用Git进行版本控制,则每次在新计算机上安装应用程序时都必须重新创建该文件。

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

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

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

答案 1 :(得分:0)

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

"hooks": {
 "grunt": false
}