grunt-kmc icon indicating copy to clipboard operation
grunt-kmc copied to clipboard

无效文件路径打包未进行提示

Open zsd881224 opened this issue 10 years ago • 0 comments

无效文件路径打包未进行提示

kmc能否提供配置项,在生成依赖关系文件过程中,若依赖文件不存在,给出错误提示并中断构建流程?

  • 事件经过
    1. 8月26日构建某个项目的过程中,由于bower过程错误导致某个依赖包部分文件丢失

    2. 项目build过程中,kmc运行结果中不存在的依赖文件地址被写为绝对路径:

      'pi/overlay/dialog': { requires: ['base', 'node', '/Users/***/work/pi/build/overlay/common.js']}
      
    3. 项目上线后,出现BUG

  • 文件正确情况下生成的依赖关系:
'pi/overlay/common': { requires: ['node', 'overlay', 'dd']},
'pi/overlay/confirm': { requires: ['base', 'node', 'pi/overlay/common']},
'pi/overlay/dialog': { requires: ['base', 'node', 'pi/overlay/common']},
'pi/overlay/index': { requires: ['pi/overlay/alert', 'pi/overlay/confirm', 'pi/overlay/dialog', 'pi/overlay/index.css']}
  • 文件丢失情况下生成的依赖关系
    • 丢失文件为common.js / index.js / confirm.js
'pi/overlay/dialog': { requires: ['base', 'node', '/Users/***/work/pi/build/overlay/common.js']}
  • 反思
    • kmc生成依赖的过程中,若能对不存在文件进行一定的提示,可防止类似情况的发生
  • 附kmc配置
kmc: {
    options: {
        packages     : [
            {
                name                  : 'pi',
                path                  : './build/',
                charset               : 'utf-8',
                ignorePackageNameInUri: true
            }

        ],
        // 生成模块依赖关系表
        depFilePath  : 'build/mods.js',
        comboOnly    : true,
        fixModuleName: true,
        comboMap     : true
    },

    main: {
        files: [
            {
                // 这里指定项目根目录下所有文件为入口文件,自定义入口请自行添加
                expand: true,
                cwd   : './build/',
                src   : [ '**/*.js'],
                dest  : './build/'
            }
        ]
    }
},

zsd881224 avatar Sep 01 '14 04:09 zsd881224