|
|
|
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/app.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),
|
|
|
|
};
|