tasks/
目录是一套 Grunt 任务及其配置,为了方便打包在一起。 Grunt 集成主要用于打包前端资产(如样式表、脚本和标记模板),但它也可以用于运行各种开发任务,从 browserify 编译到数据库迁移。
如果您以前从未使用过 Grunt,没关系!对于许多常见用例,您无需定制或甚至查看此文件夹中的文件。如果您确实需要自定义某些内容,请务必查看 入门指南,因为它解释了基本概念,例如 Gruntfile 以及如何安装和使用 Grunt 插件。一旦您熟悉该过程,继续阅读!
Sails 中打包的资产管道是一组 Grunt 任务,这些任务配置了传统的默认值,旨在使您的项目更加一致和高效。
Sails 中的整个前端资产工作流程是完全可定制的——虽然它在开箱即用时提供了一些建议,但 Sails 并不假装可以预见您在构建应用程序的基于浏览器的/前端部分时会遇到的所有需求。谁又能说你甚至在为浏览器构建一个应用程序呢?
当您运行某些命令时,Sails 会自动运行其中一些任务(tasks/register/
文件夹中的某些任务)。
sails lift
运行 default
任务 (tasks/register/default.js
)。
sails lift --prod
运行 prod
任务 (tasks/register/prod.js
)。
sails www
运行 build
任务 (tasks/register/build.js
)。
sails www --prod
(生产)运行 buildProd
任务 (tasks/register/buildProd.js
)。
您可以修改、省略或替换任何这些 Grunt 任务以满足您的需求。您还可以添加自己的 Grunt 任务——只需在 grunt/config
目录中添加一个 someTask.js
文件来配置新任务,然后将其注册到相应的父任务(请参见 grunt/register/*.js
中的文件)。
不!Sails 核心团队已经在现实世界项目中使用 Grunt 4 年以上了,总的来说它一直是一个很棒的工具。但我们意识到它并不适合所有人。要禁用 Sails 中的 Grunt 集成,只需删除您的 Gruntfile 或 禁用 Grunt 钩子。
没关系!Sails 的核心信条是客户端不可知论——它专门用于构建由各种客户端使用的 API;原生 Android/iOS/Cordova、服务器端 SDK 等。
您可以按照 此处 的说明完全禁用 Grunt。
如果您仍然想将 Grunt 用于其他目的,但不想使用任何默认的 Web 前端内容,只需删除项目中的 assets
文件夹,并从 grunt/register
和 grunt/config
文件夹中删除面向前端的任务。您也可以运行 sails new myCoolApi --no-frontend
以省略 assets
文件夹和面向前端的 Grunt 任务,以便将来使用。您还可以将 sails-generate-frontend
模块替换为替代的社区生成器,或创建您自己的生成器。这允许 sails new
为原生 iOS 应用程序、Android 应用程序、Cordova 应用程序、SteroidsJS 应用程序等创建样板。
如果您知道您永远不需要任何类型的 Web 前端,您也可以 使用
--no-frontend
生成一个新的 Sails 应用程序。
有关使用 Grunt 处理静态资产的更多信息:https://grunt.node.org.cn/configuring-tasks