Browse Source

Pull request #2570: 无JIRA chore: 去掉IE8支持,打包. and babel

Merge in VISUAL/fineui from ~DAILER/fineui:master to master

* commit 'b667e5684bd282de75bcfc6546fb45d6105fe6ba':
  无JIRA 回复number的polyfill
  无JIRA chore: 改一下打包. and babel
  无JIRA chore: 去掉IE8支持
  无JIRA __destory
es6
Dailer 3 years ago
parent
commit
a043ed08a6
  1. 1
      babel.config.ie8.js
  2. 5
      package.json
  3. 22
      src/data/pool/pool.buffer.js
  4. 31
      src/data/pool/pool.sharing.js
  5. 3
      src/data/req/req.js
  6. 96
      src/polyfill/array.js
  7. 21
      src/polyfill/localStorage.js
  8. 51
      src/polyfill/lodash.js
  9. 2
      src/polyfill/number.js
  10. 16
      src/polyfill/set.js
  11. 29
      webpack/attachments.js
  12. 14
      webpack/components.js
  13. 24
      webpack/utils.js
  14. 33
      webpack/webpack.common.js

1
babel.config.ie8.js

@ -1 +0,0 @@
module.exports = require('@fui/babel-preset-fineui').configs.ie8;

5
package.json

@ -23,7 +23,8 @@
"expose-loader": "0.7.5", "expose-loader": "0.7.5",
"express": "4.15.2", "express": "4.15.2",
"fork-ts-checker-webpack-plugin": "1.4.3", "fork-ts-checker-webpack-plugin": "1.4.3",
"grunt": "1.0.1", "glob": "^7.2.0",
"grunt": "^1.0.1",
"html-webpack-plugin": "3.2.0", "html-webpack-plugin": "3.2.0",
"husky": "^3.1.0", "husky": "^3.1.0",
"karma": "3.1.4", "karma": "3.1.4",
@ -81,4 +82,4 @@
}, },
"author": "fanruan", "author": "fanruan",
"license": "MIT" "license": "MIT"
} }

22
src/data/pool/pool.buffer.js

@ -1,22 +0,0 @@
/**
* 缓冲池
* @type {{Buffer: {}}}
*/
(function () {
var Buffer = {};
var MODE = false;// 设置缓存模式为关闭
BI.BufferPool = {
put: function (name, cache) {
if (BI.isNotNull(Buffer[name])) {
throw new Error("key值:[" + name + "] 已存在!", Buffer);
}
Buffer[name] = cache;
},
get: function (name) {
return Buffer[name];
}
};
})();

31
src/data/pool/pool.sharing.js

@ -1,31 +0,0 @@
/**
* 共享池
* @type {{Shared: {}}}
*/
(function () {
var _Shared = {};
BI.SharingPool = {
_Shared: _Shared,
put: function (name, shared) {
_Shared[name] = shared;
},
cat: function () {
var args = Array.prototype.slice.call(arguments, 0),
copy = _Shared;
for (var i = 0; i < args.length; i++) {
copy = copy && copy[args[i]];
}
return copy;
},
get: function () {
return BI.deepClone(this.cat.apply(this, arguments));
},
remove: function (key) {
delete _Shared[key];
}
};
})();

3
src/data/req/req.js

@ -1,3 +0,0 @@
BI.Req = {
};

96
src/polyfill/array.js

@ -1,96 +0,0 @@
// Production steps of ECMA-262, Edition 5, 15.4.4.14
// Reference: http://es5.github.io/#x15.4.4.14
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (searchElement, fromIndex) {
var k;
// 1. Let o be the result of calling ToObject passing
// the this value as the argument.
if (this == null) {
throw new TypeError("\"this\" is null or not defined");
}
var o = Object(this);
// 2. Let lenValue be the result of calling the Get
// internal method of o with the argument "length".
// 3. Let len be ToUint32(lenValue).
var len = o.length >>> 0;
// 4. If len is 0, return -1.
if (len === 0) {
return -1;
}
// 5. If argument fromIndex was passed let n be
// ToInteger(fromIndex); else let n be 0.
var n = fromIndex | 0;
// 6. If n >= len, return -1.
if (n >= len) {
return -1;
}
// 7. If n >= 0, then Let k be n.
// 8. Else, n<0, Let k be len - abs(n).
// If k is less than 0, then let k be 0.
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
// 9. Repeat, while k < len
while (k < len) {
// a. Let Pk be ToString(k).
// This is implicit for LHS operands of the in operator
// b. Let kPresent be the result of calling the
// HasProperty internal method of o with argument Pk.
// This step can be combined with c
// c. If kPresent is true, then
// i. Let elementK be the result of calling the Get
// internal method of o with the argument ToString(k).
// ii. Let same be the result of applying the
// Strict Equality Comparison Algorithm to
// searchElement and elementK.
// iii. If same is true, return k.
if (k in o && o[k] === searchElement) {
return k;
}
k++;
}
return -1;
};
}
if (!Array.prototype.lastIndexOf) {
Array.prototype.lastIndexOf = function (searchElement /* , fromIndex*/) {
"use strict";
if (this === void 0 || this === null) {
throw new TypeError();
}
var n, k,
t = Object(this),
len = t.length >>> 0;
if (len === 0) {
return -1;
}
n = len - 1;
if (arguments.length > 1) {
n = Number(arguments[1]);
if (n != n) {
n = 0;
} else if (n != 0 && n != (1 / 0) && n != -(1 / 0)) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
for (k = n >= 0
? Math.min(n, len - 1)
: len - Math.abs(n); k >= 0; k--) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
};
}

21
src/polyfill/localStorage.js

@ -1,21 +0,0 @@
/*
* 前端缓存
*/
_global.localStorage || (_global.localStorage = {
items: {},
setItem: function (k, v) {
BI.Cache.addCookie(k, v);
},
getItem: function (k) {
return BI.Cache.getCookie(k);
},
removeItem: function (k) {
BI.Cache.deleteCookie(k);
},
key: function () {
},
clear: function () {
this.items = {};
}
});

51
src/polyfill/lodash.js

@ -1,51 +0,0 @@
if (!Object.keys) {
Object.keys = function(o) {
if (o !== Object(o)) {
throw new TypeError('Object.keys called on a non-object');
}
// fix的问题
var falsy;
var skipArray = {
__ob__: falsy,
$accessors: falsy,
$vbthis: falsy,
$vbsetter: falsy
};
var k = [], p;
for (p in o) {
if (!(p in skipArray)) {
if (Object.prototype.hasOwnProperty.call(o, p)) {
k.push(p);
}
}
}
return k;
};
}
if (!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
}
/* core-jspolyfill
// https://stackoverflow.com/questions/10919915/ie8-getprototypeof-method
if (typeof Object.getPrototypeOf !== "function") {
Object.getPrototypeOf = "".__proto__ === String.prototype
? function (object) {
return object.__proto__;
}
: function (object) {
// May break if the constructor has been tampered with
return object.constructor.prototype;
};
}
*/
if(!Date.now) {
Date.now = function () {
return new Date().valueOf();
};
}

2
src/polyfill/number.js

@ -139,4 +139,4 @@ if (!Number.prototype.toFixed || (0.00008).toFixed(3) !== "0.000" ||
}; };
})(); })();
} }

16
src/polyfill/set.js

@ -1,16 +0,0 @@
if (typeof Set !== "undefined" && Set.toString().match(/native code/)) {
} else {
Set = function () {
this.set = {};
};
Set.prototype.has = function (key) {
return this.set[key] !== undefined;
};
Set.prototype.add = function (key) {
this.set[key] = 1;
};
Set.prototype.clear = function () {
this.set = {};
};
}

29
webpack/attachments.js

@ -1,12 +1,4 @@
const grunt = require("grunt"); const { sync, uniq } = require("./utils");
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 fixJs = "./dist/fix/fix.js";
const fixProxyJs = './dist/fix/fix.proxy.js'; const fixProxyJs = './dist/fix/fix.proxy.js';
@ -47,11 +39,12 @@ const basicAttachmentMap = {
lodashJs, lodashJs,
"src/core/**/*.js", "src/core/**/*.js",
"src/data/**/*.js", "src/data/**/*.js",
"!src/core/platform/**/*.js", ], [
"!src/core/controller/**/*.js", "src/core/platform/**/*.js",
"src/core/controller/**/*.js",
]), ]),
core_without_normalize: sync( core_without_normalize: sync(
["src/less/core/**/*.less", "src/less/theme/**/*.less", "!src/less/core/normalize.less", "!src/less/core/normalize2.less"], ["src/less/core/**/*.less", "src/less/theme/**/*.less"], ["src/less/core/normalize.less", "src/less/core/normalize2.less"]
), ),
resource: sync(["src/less/resource/**/*.less"]), resource: sync(["src/less/resource/**/*.less"]),
font: sync(["public/less/font.less"]), font: sync(["public/less/font.less"]),
@ -133,8 +126,9 @@ const bundleWithoutNormalize = [].concat(
"src/less/widget/**/*.less", "src/less/widget/**/*.less",
"src/less/component/**/*.less", "src/less/component/**/*.less",
"public/less/**/*.less", "public/less/**/*.less",
"!public/less/app.less",
// ts的less // ts的less
], [
"public/less/app.less",
]), ]),
); );
@ -189,15 +183,16 @@ const fineuiWithoutJqueryAndPolyfillJs = [].concat(
lodashJs, lodashJs,
"src/core/**/*.js", "src/core/**/*.js",
"src/data/**/*.js", "src/data/**/*.js",
"!src/core/platform/web/**/*.js", ], [
"src/core/platform/web/**/*.js",
]), ]),
basicAttachmentMap.fix, basicAttachmentMap.fix,
sync([ sync([
"src/base/**/*.js", "src/base/**/*.js",
"src/case/**/*.js", "src/case/**/*.js",
], [
"!src/base/single/input/file.js", "src/base/single/input/file.js",
"!src/case/ztree/**/*.js", "src/case/ztree/**/*.js",
]), ]),
basicAttachmentMap.widget, basicAttachmentMap.widget,
sync([fixCompact, workerCompact, "ui/js/**/*.js"]), sync([fixCompact, workerCompact, "ui/js/**/*.js"]),

14
webpack/components.js

@ -1,12 +1,4 @@
const grunt = require("grunt"); const { sync, uniq } = require("./utils");
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 basicAttachmentMap = { const basicAttachmentMap = {
single: sync(["src/base/single/**/*.js"]), single: sync(["src/base/single/**/*.js"]),
@ -24,7 +16,7 @@ const basicAttachmentMap = {
linear_segment: sync(["src/case/linearsegment/**/*.js"]), linear_segment: sync(["src/case/linearsegment/**/*.js"]),
date: sync(["src/widget/date/**/*.js"]), date: sync(["src/widget/date/**/*.js"]),
down_list: sync(["src/widget/downlist/**/*.js"]), down_list: sync(["src/widget/downlist/**/*.js"]),
text_value_down_list_combo: sync(["src/widget/textvaluedownlistcombo/**/*.js"]) text_value_down_list_combo: sync(["src/widget/textvaluedownlistcombo/**/*.js"]),
}; };
module.exports = { module.exports = {
@ -43,5 +35,5 @@ module.exports = {
linear_segment: basicAttachmentMap.linear_segment, linear_segment: basicAttachmentMap.linear_segment,
date: basicAttachmentMap.date, date: basicAttachmentMap.date,
down_list: basicAttachmentMap.down_list, down_list: basicAttachmentMap.down_list,
text_value_down_list_combo: basicAttachmentMap.text_value_down_list_combo text_value_down_list_combo: basicAttachmentMap.text_value_down_list_combo,
}; };

24
webpack/utils.js

@ -0,0 +1,24 @@
const path = require('path');
const glob = require('glob');
// const glob = require('fast-glob');
function uniq(names) {
return [...new Set(names)];
}
const globalExcludes = [
"**/*/__test__/*.js",
];
function sync(patterns, excludes = []) {
const ignore = globalExcludes.concat(excludes).map(pattern => path.join(__dirname, "../", pattern).replace(/\\/g, '/'));
return patterns.map(pattern => glob.sync(path.join(__dirname, "../", pattern).replace(/\\/g, '/'), { ignore })).flat();
}
module.exports = {
sync,
uniq,
};

33
webpack/webpack.common.js

@ -37,40 +37,25 @@ module.exports = {
module: { module: {
rules: [ rules: [
{ {
test: /\.(js|ts)$/, test: /\.(jsx?|tsx?)$/i,
include: [dirs.NODE_MODULES, dirs.PRIVATE, dirs.TYPESCRIPT, dirs.ROUTER],
exclude: /node_modules(\/|\\)core-js/,
use: [
{
loader: 'babel-loader',
options: {
configFile: dirs.BABEL_CONFIG,
},
},
{
loader: 'source-map-loader',
options: {
enforce: 'pre',
},
},
],
},
{
test: /\.js$/,
include: [ include: [
dirs.DEMO, dirs.NODE_MODULES,
dirs.SRC, dirs.PRIVATE,
dirs.PUBLIC, dirs.PUBLIC,
dirs.MOBILE, dirs.MOBILE,
dirs.DEMO,
dirs.I18N, dirs.I18N,
dirs.UI, dirs.UI,
dirs.FIX, dirs.FIX,
dirs.TYPESCRIPT,
dirs.SRC,
], ],
exclude: /node_modules(\/|\\)core-js/,
use: [ use: [
{ {
loader: 'source-map-loader', loader: 'babel-loader',
options: { options: {
enforce: 'pre', configFile: dirs.BABEL_CONFIG,
}, },
}, },
], ],

Loading…
Cancel
Save