You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
218 lines
6.3 KiB
218 lines
6.3 KiB
const grunt = require("grunt"); |
|
|
|
function uniq(names) { |
|
return [...new Set(names)]; |
|
} |
|
|
|
function sync(patterns) { |
|
return uniq(grunt.file.expand({ filter: path => !new RegExp(/__test__/g).test(path) }, patterns)).map(name => `./${name}`); |
|
} |
|
|
|
const fixJs = "./dist/fix/fix.js"; |
|
const fixIEJs = "./dist/fix/fix.ie.js"; |
|
const fixCompact = "./dist/fix/fix.compact.js"; |
|
const fixIECompact = './dist/fix/fix.compact.ie.js'; |
|
const workerCompact = './dist/fix/worker.compact.js'; |
|
const lodashJs = "src/core/1.lodash.js"; |
|
|
|
const basicAttachmentMap = { |
|
polyfill: sync(["src/core/0.foundation.js", "src/polyfill/**/*.js"]).concat(["@babel/polyfill", "es6-promise/auto"]), |
|
polyfillIE: sync(["src/core/0.foundation.js", "src/polyfill/**/*.js"]).concat([ |
|
"core-js/features/object/define-property", |
|
"core-js/features/object/create", |
|
"core-js/features/object/assign", |
|
"core-js/features/object/get-own-property-symbols", |
|
"core-js/features/object/get-prototype-of", |
|
"core-js/features/array/for-each", |
|
"core-js/features/array/index-of", |
|
"core-js/features/function/bind", |
|
"core-js/features/promise", |
|
"core-js/features/string/replace", |
|
"core-js/es/map", |
|
// "core-js", |
|
]), |
|
core: sync([ |
|
"src/less/core/**/*.less", |
|
"src/less/theme/**/*.less", |
|
lodashJs, |
|
"src/core/**/*.js", |
|
"src/data/**/*.js", |
|
]), |
|
// 最基础的控件 |
|
base: sync([ |
|
"src/less/base/**/*.less", |
|
"src/third/**/*.js", |
|
"src/base/**/*.js", |
|
]), |
|
// 实现好的一些基础实例 |
|
case: sync([ |
|
"src/case/**/*.js", |
|
]), |
|
widget: sync([ |
|
"src/less/widget/**/*.less", |
|
"src/widget/**/*.js", |
|
"src/component/**/*.js", |
|
]), |
|
router: sync([ |
|
"src/router/**/*.js", |
|
]), |
|
'core_without_normalize': sync( |
|
["src/less/core/**/*.less", "src/less/theme/**/*.less", "!src/less/core/normalize.less", "!src/less/core/normalize2.less"], |
|
), |
|
resource: sync(["src/less/resource/**/*.less"]), |
|
font: sync(["public/less/font.less"]), |
|
ts: ['./typescript/bundle.ts'], |
|
ui: sync([ |
|
'ui/less/app.less', |
|
'ui/less/**/*.less', |
|
'ui/js/**/*.js', |
|
]), |
|
config: sync(["demo/version.js", "i18n/i18n.cn.js"]), |
|
utils: sync([ |
|
"src/core/0.foundation.js", |
|
lodashJs, |
|
"src/core/constant/**/*.js", |
|
"src/core/func/**/*.js", |
|
"src/core/2.base.js", |
|
"src/core/3.ob.js", |
|
"src/core/6.inject.js", |
|
"src/core/utils/*.js", |
|
"i18n/i18n.cn.js", |
|
"_mobile/date.i18n.cn.js", |
|
"src/data/**/*.js", |
|
]), |
|
fix: [fixJs], |
|
fixIE: [fixIEJs], |
|
}; |
|
|
|
const bundle = [].concat( |
|
basicAttachmentMap.polyfill, |
|
basicAttachmentMap.core, |
|
basicAttachmentMap.fix, |
|
basicAttachmentMap.base, |
|
basicAttachmentMap.case, |
|
basicAttachmentMap.widget, |
|
sync(["public/less/app.less", "public/less/**/*.less"]), |
|
[fixCompact, workerCompact], |
|
basicAttachmentMap.router, |
|
sync(["public/js/**/*.js", "public/js/index.js", "i18n/i18n.cn.js"]), |
|
basicAttachmentMap.ts, |
|
); |
|
|
|
const coreJs = [].concat( |
|
basicAttachmentMap.polyfill, |
|
basicAttachmentMap.core, |
|
basicAttachmentMap.fix, |
|
basicAttachmentMap.base, |
|
basicAttachmentMap.case, |
|
basicAttachmentMap.widget, |
|
['./dist/fix/fix.compact.js'], |
|
basicAttachmentMap.router, |
|
basicAttachmentMap.ts, |
|
); |
|
|
|
const resource = sync(["private/less/app.less", "private/less/**/*.less"]); |
|
|
|
const config = sync(["public/js/**/*.js", "public/js/index.js", "i18n/i18n.cn.js"]); |
|
|
|
const bundleIE = [].concat( |
|
basicAttachmentMap.polyfillIE, |
|
basicAttachmentMap.core, |
|
basicAttachmentMap.fixIE, |
|
basicAttachmentMap.base, |
|
basicAttachmentMap.case, |
|
basicAttachmentMap.widget, |
|
sync(["public/less/app.less", "public/less/**/*.less"]), |
|
[fixIECompact, workerCompact], |
|
basicAttachmentMap.router, |
|
sync(["public/js/**/*.js", "public/js/index.js", "i18n/i18n.cn.js"]), |
|
basicAttachmentMap.ts, |
|
); |
|
|
|
const bundleWithoutNormalize = [].concat( |
|
basicAttachmentMap.core_without_normalize, |
|
sync([ |
|
"src/less/base/**/*.less", |
|
"src/less/widget/**/*.less", |
|
"public/less/**/*.less", |
|
// ts的less |
|
]), |
|
); |
|
|
|
const fineui = [].concat( |
|
basicAttachmentMap.polyfill, |
|
basicAttachmentMap.core, |
|
basicAttachmentMap.fix, |
|
basicAttachmentMap.base, |
|
basicAttachmentMap.case, |
|
basicAttachmentMap.widget, |
|
basicAttachmentMap.router, |
|
[fixCompact, workerCompact], |
|
basicAttachmentMap.ui, |
|
basicAttachmentMap.ts, |
|
); |
|
|
|
const fineuiIE = [].concat( |
|
basicAttachmentMap.polyfillIE, |
|
basicAttachmentMap.core, |
|
basicAttachmentMap.fixIE, |
|
basicAttachmentMap.base, |
|
basicAttachmentMap.case, |
|
basicAttachmentMap.widget, |
|
basicAttachmentMap.router, |
|
[fixIECompact, workerCompact], |
|
basicAttachmentMap.ui, |
|
basicAttachmentMap.ts, |
|
); |
|
|
|
const fineuiWithoutJqueryAndPolyfillJs = [].concat( |
|
sync([ |
|
"src/core/foundation.js", |
|
lodashJs, |
|
"src/core/**/*.js", |
|
"src/data/**/*.js", |
|
"dist/fix/fix.js", |
|
"src/base/**/*.js", |
|
"src/case/**/*.js", |
|
|
|
"!src/core/platform/web/**/*.js", |
|
"!src/base/single/input/file.js", |
|
"!src/case/ztree/**/*.js", |
|
]), |
|
basicAttachmentMap.widget, |
|
sync([fixCompact, workerCompact, "ui/js/**/*.js"]), |
|
basicAttachmentMap.ts, |
|
); |
|
|
|
const demo = [].concat( |
|
basicAttachmentMap.polyfill, |
|
basicAttachmentMap.core, |
|
basicAttachmentMap.router, |
|
basicAttachmentMap.fix, |
|
basicAttachmentMap.base, |
|
basicAttachmentMap.case, |
|
basicAttachmentMap.widget, |
|
sync(["public/less/app.less", "public/less/**/*.less"]), |
|
[fixCompact, workerCompact], |
|
basicAttachmentMap.config, |
|
basicAttachmentMap.ts, |
|
sync(["demo/less/*.less", "demo/less/**/*.less", "demo/app.js", "demo/js/**/*.js", "demo/config.js"]), |
|
); |
|
|
|
module.exports = { |
|
fix: fixJs, |
|
fixIE: fixIEJs, |
|
lodash: lodashJs, |
|
font: basicAttachmentMap.font, |
|
bundle: uniq(bundle), |
|
bundleIE: uniq(bundleIE), |
|
bundleWithoutNormalize: uniq(bundleWithoutNormalize), |
|
fineui: uniq(fineui), |
|
fineuiIE: uniq(fineuiIE), |
|
fineuiWithoutJqueryAndPolyfillJs: uniq(fineuiWithoutJqueryAndPolyfillJs), |
|
utils: uniq(basicAttachmentMap.utils), |
|
demo: uniq(demo), |
|
coreJs: uniq(coreJs), |
|
resource: uniq((resource)), |
|
config: uniq(config), |
|
};
|
|
|