【问题标题】:Grunt Uglify files from list in external documentGrunt Uglify 外部文档列表中的文件
【发布时间】:2020-09-14 16:14:07
【问题描述】:

我有一个模块系统,可以通过管理 UI 进行控制,开发人员可以启用或禁用功能,然后任务运行程序负责将所有 UI 资产准备到单个文件中以加载到前端。

使用 SASS,我可以以编程方式控制要编译的 index.scss 文件,这意味着这很简单 - 但是,对于 JS,我还没有找到相同的选项。

我们的想法是避免任何文件复制、操作或移动,以降低复杂性、避免问题并加快任务运行程序,这很快就会变得臃肿和变慢。

由于该过程以保存例程开始,我可以收集有关当前“活动”模块的数据并将其存储为任何文件格式 - json、csv 等 - 然后我想从文件中加载该配置Gruntfile - 可能会持续观察(以防配置只能加载一次是一个问题? - 每次编译之前都需要重新获取数据)。

简单示例:

*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","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"]
Done.

*Gruntfile.js

// load config ##
grunt.registerTask( 
    'config' 
    , function() {
        modules = grunt.file.readJSON('module.json')
        grunt.log.write(JSON.stringify( modules.js ) );
    }
);

关于指针的任何想法?谢谢!

【问题讨论】:

    标签: json gruntjs uglifyjs


    【解决方案1】:

    答案非常简单——在 JSON 中包含每个“文件”的完整路径,然后 Grunt 会毫无问题地对其进行解析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多