如何解决从外部文档列表中Grunt Uglify文件
我有一个模块系统,可以通过管理UI进行控制,开发人员可以启用或禁用功能,然后任务运行器负责将所有UI资产准备为单个文件以加载到前端。
使用SASS,我可以以编程方式控制index.scss文件的编译,这意味着这很简单-但是,对于JS,我找不到相同的选项。
该想法是避免任何文件重复,操纵或移动,以减少复杂性,避免出现问题,并加快任务运行程序的速度,使任务运行程序迅速膨胀并减慢速度。
随着该过程从保存例程开始,我可以收集有关当前“活动”模块的数据,并将其存储为任何文件格式-json,csv等(然后),然后从文件中加载该配置。 Gruntfile-可能一直在监视(如果config只能被加载一次的问题呢?-需要在每次编译之前重新抓取数据)。
简单的例子:
* module.json
{"js":["modal.js","toast.js","tab.js","collapse.js","form.js","toggle.js","gallery.js","helper.js","scrollspy.js","scroll.js","lazy.js","javascript.js","comment.js","push.js","nprogress.js","consent.js","search.js","anspress.js","localize.js"]}
* Gruntfile.js
// ------- configuration ------- ##
module.exports = function(grunt) {
grunt.initConfig({
// load modules ##
modules: grunt.file.readJSON('module.json'),'uglify': {
// options etc ##
files:{
'library/asset/js/module.min.js' : '<%= modules.js %>'
}
}
});
// Development Tasks ##
grunt.registerTask(
'default',[ 'uglify' ]
);
}
此配置可以运行,但不能正确地从JSON加载数据-Grunt说:
未编写目标库/asset/js/module.min.js,因为src 文件为空。
我知道Grunt可以阅读JS,因为我可以执行以下操作:
*终端
$ grunt config
Running "config" task
["modal.js","localize.js"]
Done.
* Gruntfile.js
// load config ##
grunt.registerTask(
'config',function() {
modules = grunt.file.readJSON('module.json')
grunt.log.write(JSON.stringify( modules.js ) );
}
);
对指针有什么想法吗?谢谢!
解决方法
答案非常简单-在JSON中包含每个“文件”的完整路径,然后Grunt对其进行了解析,没有问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。