Sails 中捆绑的资产管道是一组使用传统默认值配置的 Grunt 任务,旨在使您的项目更加一致和高效。整个前端资产工作流程是完全可定制的,同时提供了一些开箱即用的默认任务。Sails 使得配置新任务以满足您的需求变得容易, 配置新任务。
以下是一些 Sails 中的默认 Grunt 配置可以帮助您的功能:
以下是新 Sails 项目中默认包含的 Grunt 任务列表:
此 Grunt 任务被配置为清除 Sails 项目中的
.tmp/public/
目录的内容。
创建并为文件名添加唯一哈希值,用于缓存清除。
合并 JavaScript 和 CSS 文件,并将合并后的文件保存到
.tmp/public/concat/
目录中。
dev 任务配置
将 Sails 资产文件夹中的所有目录和文件(除了 coffeescript 和 less 文件)复制到
.tmp/public/
目录中。
build 任务配置
将 .tmp/public 目录中的所有目录和文件复制到 www 目录中。
压缩 CSS 文件并将它们放置到
.tmp/public/min/
目录中。
将 LESS 文件编译为 CSS。只编译
assets/styles/importer.less
。这使您可以自己控制排序(例如,在其他样式表之前导入依赖项、mixin、变量、重置等)。
自动注入 JavaScript 文件的
<script>
标签和 CSS 文件的<link>
标签。还使用<script>
标签自动链接包含预编译模板的输出文件。有关此任务的更详细描述,请参阅 此处,但需要注意的是,脚本和样式表的注入仅在包含<!--SCRIPTS--><!--SCRIPTS END-->
和/或<!--STYLES--><!--STYLES END-->
标签的文件中完成。这些标签包含在新的 Sails 项目中的默认 views/layouts/layout.ejs 文件中。如果您不想将链接器用于您的项目,可以简单地删除这些标签。
一个 Grunt 任务,用于保持目录同步。它与 grunt-contrib-copy 非常相似,但只尝试复制实际上已更改的文件。它专门将
assets/
文件夹中的文件同步到.tmp/public/
,覆盖已存在的所有内容。
此 Grunt 任务被配置为将前端 JavaScript 文件中的任何 >=ES6 语法转换为与旧浏览器兼容的代码。
压缩客户端 JavaScript 资产。请注意,默认情况下,此任务将“混淆”您所有函数和变量的名称(通过将它们更改为更短的名称,或完全删除它们)。这通常是可取的,因为它会使您的代码变得更小,但在某些情况下会导致意外的结果(尤其是在您希望对象的构造函数具有特定名称时)。要关闭或修改此行为,在设置此任务时使用
mangle
选项。
每当监视的文件模式被添加、更改或删除时,就会运行预定义的任务。监视
assets/
文件夹中文件的更改,并重新运行相应的任务(例如,LESS 编译)。这使您可以看到对资产的更改反映在您的应用程序中,而无需重新启动 Sails 服务器。