Sails js - 创建资产副本

adn*_*ili 2 javascript node.js sails.js

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

sgr*_*454 8

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

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

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

    module.exports = {
      paths: {
        public: __dirname+"/../assets"
      } 
    };
    
    Run Code Online (Sandbox Code Playgroud)

把它放在一个新的配置文件而不是config/local.js中的原因是默认情况下local.js在你的.gitignore文件中,所以如果你使用Git进行版本控制,你必须每次都重新创建该文件.你在新机器上安装应用程序的时间.

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

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

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