mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-06-09 19:22:28 +03:00
change to rollup
This commit is contained in:
Generated
+125
-1435
File diff suppressed because it is too large
Load Diff
+10
-11
@@ -9,22 +9,21 @@
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.9.6",
|
||||
"@babel/preset-env": "^7.9.6",
|
||||
"@babel/preset-typescript": "^7.9.0",
|
||||
"@rollup/plugin-node-resolve": "^8.0.0",
|
||||
"@rollup/plugin-typescript": "^4.1.2",
|
||||
"@rollup/plugin-babel": "^5.1.0",
|
||||
"@rollup/plugin-commonjs": "^14.0.0",
|
||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
||||
"@rollup/plugin-typescript": "^5.0.2",
|
||||
"@types/jest": "^25.2.3",
|
||||
"babel-jest": "^26.0.1",
|
||||
"clean-webpack-plugin": "^3.0.0",
|
||||
"jest": "^26.0.1",
|
||||
"terser-webpack-plugin": "^3.0.7",
|
||||
"ts-loader": "^8.0.1",
|
||||
"rollup": "^2.22.1",
|
||||
"rollup-plugin-terser": "^6.1.0",
|
||||
"rollup-plugin-typescript2": "^0.27.1",
|
||||
"tslib": "^2.0.0",
|
||||
"typescript": "^3.9.3",
|
||||
"webpack": "next",
|
||||
"webpack-cli": "^3.3.12",
|
||||
"webpack-merge": "^5.0.9"
|
||||
"typescript": "^3.9.3"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest --coverage",
|
||||
"build": "npx webpack --env.project=overlayscrollbars --env.production"
|
||||
"build": "npx webpack --env.project=overlayscrollbars"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+75
-62
@@ -1,62 +1,75 @@
|
||||
!function(o, r) {
|
||||
"object" == typeof exports && "object" == typeof module ? module.exports = r() : "function" == typeof define && define.amd ? define([], r) : "object" == typeof exports ? exports.OverlayScrollbars = r() : o.OverlayScrollbars = r();
|
||||
}(window, (function() {
|
||||
return (() => {
|
||||
"use strict";
|
||||
var o = {
|
||||
95: (o, r, e) => {
|
||||
e.d(r, {
|
||||
default: () => u
|
||||
});
|
||||
function s(o) {
|
||||
return "function" == typeof o;
|
||||
}
|
||||
function t(o) {
|
||||
return Array.isArray(o);
|
||||
}
|
||||
function n(o) {
|
||||
const r = !!o && o.length;
|
||||
return t(o) || !s(o) && function(o) {
|
||||
return "number" == typeof o;
|
||||
}(r) && r > -1 && r % 1 == 0;
|
||||
}
|
||||
function i(o, r) {
|
||||
let e = 0;
|
||||
if (n(o)) for (;e < o.length && !1 !== r(o[e], e, o); e++) ; else if (o) for (e in o) if (!1 === r(o[e], e, o)) break;
|
||||
return o;
|
||||
}
|
||||
const c = o => {
|
||||
if (n(o)) i(Array.from(o), o => c(o)); else if (o) {
|
||||
const r = o.parentNode;
|
||||
r && r.removeChild(o);
|
||||
}
|
||||
}, l = o => {
|
||||
const r = document.createElement("div");
|
||||
return r.innerHTML = o.trim(), i((o => o ? Array.from(o.childNodes) : [])(r), o => c(o));
|
||||
};
|
||||
const a = o => o.charAt(0).toUpperCase() + o.slice(1), d = [ "WebKit", "Moz", "O", "MS", "webkit", "moz", "o", "ms" ], f = {}, v = ((o => {
|
||||
let r = f[o] || window[o];
|
||||
f.hasOwnProperty(o) || (i(d, e => (r = r || window[e + a(o)], !r)), f[o] = r);
|
||||
})("ResizeObserver"), JSON.stringify, [ "__TPL_", "_TYPE__" ]);
|
||||
[ "boolean", "number", "string", "array", "object", "function", "null" ].reduce((o, r) => (o[r] = v[0] + r + v[1],
|
||||
o), {});
|
||||
new Set, new WeakMap;
|
||||
const u = () => l(' <div class="os-host"> <div class="os-resize-observer-host"></div> <div class="os-padding"> <div class="os-viewport"> <div class="os-content"> fdfhdfgh </div> </div> </div> <div class="os-scrollbar os-scrollbar-horizontal"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar os-scrollbar-vertical"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar-corner"></div> </div>');
|
||||
}
|
||||
}, r = {};
|
||||
function e(s) {
|
||||
if (r[s]) return r[s].exports;
|
||||
var t = r[s] = {
|
||||
exports: {}
|
||||
};
|
||||
return o[s](t, t.exports, e), t.exports;
|
||||
}
|
||||
return e.d = (o, r) => {
|
||||
for (var s in r) e.o(r, s) && !e.o(o, s) && Object.defineProperty(o, s, {
|
||||
enumerable: !0,
|
||||
get: r[s]
|
||||
});
|
||||
}, e.o = (o, r) => Object.prototype.hasOwnProperty.call(o, r), e(95);
|
||||
})().default;
|
||||
}));
|
||||
//# sourceMappingURL=overlayscrollbars.esm.js.map
|
||||
import j from 'jquery';
|
||||
|
||||
function isNumber(obj) {
|
||||
return typeof obj === 'number';
|
||||
}
|
||||
|
||||
function isFunction(obj) {
|
||||
return typeof obj === 'function';
|
||||
}
|
||||
|
||||
function isArray(obj) {
|
||||
return Array.isArray(obj);
|
||||
}
|
||||
|
||||
function isArrayLike(obj) {
|
||||
const length = !!obj && obj.length;
|
||||
return isArray(obj) || !isFunction(obj) && isNumber(length) && length > -1 && length % 1 == 0;
|
||||
}
|
||||
|
||||
function each(source, callback) {
|
||||
let i = 0;
|
||||
|
||||
if (isArrayLike(source)) {
|
||||
for (; i < source.length; i++) {
|
||||
if (callback(source[i], i, source) === false) break;
|
||||
}
|
||||
} else if (source) {
|
||||
for (i in source) {
|
||||
if (callback(source[i], i, source) === false) break;
|
||||
}
|
||||
}
|
||||
|
||||
return source;
|
||||
}
|
||||
|
||||
const contents = elm => {
|
||||
return elm ? Array.from(elm.childNodes) : [];
|
||||
};
|
||||
|
||||
const removeElements = nodes => {
|
||||
if (isArrayLike(nodes)) {
|
||||
each(Array.from(nodes), e => removeElements(e));
|
||||
} else if (nodes) {
|
||||
const parentNode = nodes.parentNode;
|
||||
if (parentNode) parentNode.removeChild(nodes);
|
||||
}
|
||||
};
|
||||
|
||||
const createDiv = () => {
|
||||
return document.createElement('div');
|
||||
};
|
||||
|
||||
const createDOM = html => {
|
||||
const elm = createDiv();
|
||||
elm.innerHTML = html.trim();
|
||||
return each(contents(elm), elm => removeElements(elm));
|
||||
};
|
||||
|
||||
const abc = {
|
||||
a: 1,
|
||||
b: 1,
|
||||
c: 1
|
||||
};
|
||||
|
||||
var index = () => {
|
||||
const {
|
||||
a,
|
||||
b,
|
||||
c
|
||||
} = abc;
|
||||
return [createDOM(" <div class=\"os-host\"> <div class=\"os-resize-observer-host\"></div> <div class=\"os-padding\"> <div class=\"os-viewport\"> <div class=\"os-content\"> fdfhdfgh </div> </div> </div> <div class=\"os-scrollbar os-scrollbar-horizontal\"> <div class=\"os-scrollbar-track\"> <div class=\"os-scrollbar-handle\"></div> </div> </div> <div class=\"os-scrollbar os-scrollbar-vertical\"> <div class=\"os-scrollbar-track\"> <div class=\"os-scrollbar-handle\"></div> </div> </div> <div class=\"os-scrollbar-corner\"></div> </div>"), j('div'), a, b, c];
|
||||
};
|
||||
|
||||
export default index;
|
||||
//# sourceMappingURL=overlayscrollbars.esm.js.map
|
||||
|
||||
File diff suppressed because one or more lines are too long
+100
-77
@@ -1,77 +1,100 @@
|
||||
!function(r, n) {
|
||||
"object" == typeof exports && "object" == typeof module ? module.exports = n() : "function" == typeof define && define.amd ? define([], n) : "object" == typeof exports ? exports.OverlayScrollbars = n() : r.OverlayScrollbars = n();
|
||||
}(window, (function() {
|
||||
return function() {
|
||||
"use strict";
|
||||
var r = {
|
||||
95: function(r, n, o) {
|
||||
o.d(n, {
|
||||
default: function() {
|
||||
return p;
|
||||
}
|
||||
});
|
||||
function e(r) {
|
||||
return "function" == typeof r;
|
||||
}
|
||||
function t(r) {
|
||||
return Array.isArray(r);
|
||||
}
|
||||
function i(r) {
|
||||
var n = !!r && r.length;
|
||||
return t(r) || !e(r) && function(r) {
|
||||
return "number" == typeof r;
|
||||
}(n) && n > -1 && n % 1 == 0;
|
||||
}
|
||||
function s(r, n) {
|
||||
var o = 0;
|
||||
if (i(r)) for (;o < r.length && !1 !== n(r[o], o, r); o++) ; else if (r) for (o in r) if (!1 === n(r[o], o, r)) break;
|
||||
return r;
|
||||
}
|
||||
var c = function(r) {
|
||||
if (i(r)) s(Array.from(r), (function(r) {
|
||||
return c(r);
|
||||
})); else if (r) {
|
||||
var n = r.parentNode;
|
||||
n && n.removeChild(r);
|
||||
}
|
||||
}, u = function(r) {
|
||||
var n = document.createElement("div");
|
||||
return n.innerHTML = r.trim(), s(function(r) {
|
||||
return r ? Array.from(r.childNodes) : [];
|
||||
}(n), (function(r) {
|
||||
return c(r);
|
||||
}));
|
||||
};
|
||||
var a, f, l = function(r) {
|
||||
return r.charAt(0).toUpperCase() + r.slice(1);
|
||||
}, d = [ "WebKit", "Moz", "O", "MS", "webkit", "moz", "o", "ms" ], v = {}, b = (f = v[a = "ResizeObserver"] || window[a],
|
||||
v.hasOwnProperty(a) || (s(d, (function(r) {
|
||||
return !(f = f || window[r + l(a)]);
|
||||
})), v[a] = f), JSON.stringify, [ "__TPL_", "_TYPE__" ]);
|
||||
[ "boolean", "number", "string", "array", "object", "function", "null" ].reduce((function(r, n) {
|
||||
return r[n] = b[0] + n + b[1], r;
|
||||
}), {});
|
||||
new Set, new WeakMap;
|
||||
var p = function() {
|
||||
return u(' <div class="os-host"> <div class="os-resize-observer-host"></div> <div class="os-padding"> <div class="os-viewport"> <div class="os-content"> fdfhdfgh </div> </div> </div> <div class="os-scrollbar os-scrollbar-horizontal"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar os-scrollbar-vertical"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar-corner"></div> </div>');
|
||||
};
|
||||
}
|
||||
}, n = {};
|
||||
function o(e) {
|
||||
if (n[e]) return n[e].exports;
|
||||
var t = n[e] = {
|
||||
exports: {}
|
||||
};
|
||||
return r[e](t, t.exports, o), t.exports;
|
||||
}
|
||||
return o.d = function(r, n) {
|
||||
for (var e in n) o.o(n, e) && !o.o(r, e) && Object.defineProperty(r, e, {
|
||||
enumerable: !0,
|
||||
get: n[e]
|
||||
});
|
||||
}, o.o = function(r, n) {
|
||||
return Object.prototype.hasOwnProperty.call(r, n);
|
||||
}, o(95);
|
||||
}().default;
|
||||
}));
|
||||
//# sourceMappingURL=overlayscrollbars.js.map
|
||||
(function (global, factory) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
define("OverlayScrollbars", ["exports", "jquery"], factory);
|
||||
} else if (typeof exports !== "undefined") {
|
||||
factory(exports, require("jquery"));
|
||||
} else {
|
||||
var mod = {
|
||||
exports: {}
|
||||
};
|
||||
factory(mod.exports, global.jQuery);
|
||||
global.OverlayScrollbars = mod.exports;
|
||||
}
|
||||
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _jquery) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(_exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
_exports.default = void 0;
|
||||
_jquery = _interopRequireDefault(_jquery);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function isNumber(obj) {
|
||||
return typeof obj === 'number';
|
||||
}
|
||||
|
||||
function isFunction(obj) {
|
||||
return typeof obj === 'function';
|
||||
}
|
||||
|
||||
function isArray(obj) {
|
||||
return Array.isArray(obj);
|
||||
}
|
||||
|
||||
function isArrayLike(obj) {
|
||||
var length = !!obj && obj.length;
|
||||
return isArray(obj) || !isFunction(obj) && isNumber(length) && length > -1 && length % 1 == 0;
|
||||
}
|
||||
|
||||
function each(source, callback) {
|
||||
var i = 0;
|
||||
|
||||
if (isArrayLike(source)) {
|
||||
for (; i < source.length; i++) {
|
||||
if (callback(source[i], i, source) === false) break;
|
||||
}
|
||||
} else if (source) {
|
||||
for (i in source) {
|
||||
if (callback(source[i], i, source) === false) break;
|
||||
}
|
||||
}
|
||||
|
||||
return source;
|
||||
}
|
||||
|
||||
var contents = function contents(elm) {
|
||||
return elm ? Array.from(elm.childNodes) : [];
|
||||
};
|
||||
|
||||
var removeElements = function removeElements(nodes) {
|
||||
if (isArrayLike(nodes)) {
|
||||
each(Array.from(nodes), function (e) {
|
||||
return removeElements(e);
|
||||
});
|
||||
} else if (nodes) {
|
||||
var parentNode = nodes.parentNode;
|
||||
if (parentNode) parentNode.removeChild(nodes);
|
||||
}
|
||||
};
|
||||
|
||||
var createDiv = function createDiv() {
|
||||
return document.createElement('div');
|
||||
};
|
||||
|
||||
var createDOM = function createDOM(html) {
|
||||
var elm = createDiv();
|
||||
elm.innerHTML = html.trim();
|
||||
return each(contents(elm), function (elm) {
|
||||
return removeElements(elm);
|
||||
});
|
||||
};
|
||||
|
||||
var abc = {
|
||||
a: 1,
|
||||
b: 1,
|
||||
c: 1
|
||||
};
|
||||
|
||||
var index = function index() {
|
||||
var a = abc.a,
|
||||
b = abc.b,
|
||||
c = abc.c;
|
||||
return [createDOM(" <div class=\"os-host\"> <div class=\"os-resize-observer-host\"></div> <div class=\"os-padding\"> <div class=\"os-viewport\"> <div class=\"os-content\"> fdfhdfgh </div> </div> </div> <div class=\"os-scrollbar os-scrollbar-horizontal\"> <div class=\"os-scrollbar-track\"> <div class=\"os-scrollbar-handle\"></div> </div> </div> <div class=\"os-scrollbar os-scrollbar-vertical\"> <div class=\"os-scrollbar-track\"> <div class=\"os-scrollbar-handle\"></div> </div> </div> <div class=\"os-scrollbar-corner\"></div> </div>"), (0, _jquery.default)('div'), a, b, c];
|
||||
};
|
||||
|
||||
var _default = index;
|
||||
_exports.default = _default;
|
||||
});
|
||||
//# sourceMappingURL=overlayscrollbars.js.map
|
||||
|
||||
File diff suppressed because one or more lines are too long
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"version": "0.0.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@types/jquery": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.0.tgz",
|
||||
"integrity": "sha512-C7qQUjpMWDUNYQRTXsP5nbYYwCwwgy84yPgoTT7fPN69NH92wLeCtFaMsWeolJD1AF/6uQw3pYt62rzv83sMmw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/sizzle": "*"
|
||||
}
|
||||
},
|
||||
"@types/sizzle": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz",
|
||||
"integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==",
|
||||
"dev": true
|
||||
},
|
||||
"jquery": {
|
||||
"version": "3.5.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz",
|
||||
"integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg=="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"private": true,
|
||||
"description": "OverlayScrollbars version 2",
|
||||
"version": "0.0.1"
|
||||
"version": "0.0.1",
|
||||
"peerDependencies": {
|
||||
"jquery": "^3.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jquery": "^3.5.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
const name = 'OverlayScrollbars';
|
||||
const exports = 'default';
|
||||
|
||||
|
||||
export default [
|
||||
{
|
||||
name,
|
||||
exports,
|
||||
format: 'umd',
|
||||
sourcemap: true,
|
||||
},
|
||||
{
|
||||
name,
|
||||
exports,
|
||||
format: 'es',
|
||||
sourcemap: true,
|
||||
},
|
||||
];
|
||||
@@ -1,15 +1,23 @@
|
||||
|
||||
import { createDOM } from 'core/dom';
|
||||
|
||||
import j from 'jquery';
|
||||
/*
|
||||
export * from 'core/compatibility';
|
||||
export * from 'core/utils';
|
||||
export * from 'core/dom';
|
||||
export * from 'core/options';
|
||||
export * from 'instances';
|
||||
*/
|
||||
|
||||
const abc = {
|
||||
a: 1,
|
||||
b: 1,
|
||||
c: 1,
|
||||
}
|
||||
|
||||
|
||||
export default () => createDOM(`\
|
||||
export default () => {
|
||||
const { a, b, c } = abc;
|
||||
return [createDOM(`\
|
||||
<div class="os-host">\
|
||||
<div class="os-resize-observer-host"></div>\
|
||||
<div class="os-padding">\
|
||||
@@ -30,4 +38,5 @@ export default () => createDOM(`\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="os-scrollbar-corner"></div>\
|
||||
</div>`);
|
||||
</div>`), j('div'), a, b, c];
|
||||
};
|
||||
+2
-6
@@ -1,7 +1,3 @@
|
||||
export * from 'core/compatibility';
|
||||
export * from 'core/utils';
|
||||
export * from 'core/dom';
|
||||
export * from 'core/options';
|
||||
export * from 'instances';
|
||||
declare const _default: () => readonly Node[];
|
||||
/// <reference types="jquery" />
|
||||
declare const _default: () => (number | readonly Node[] | JQuery<HTMLElement>)[];
|
||||
export default _default;
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
export default {
|
||||
output: {
|
||||
library: 'OverlayScrollbars',
|
||||
libraryTarget: 'umd',
|
||||
libraryExport: 'default',
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
import path from 'path';
|
||||
import commonjs from '@rollup/plugin-commonjs';
|
||||
import resolve from '@rollup/plugin-node-resolve';
|
||||
import typescript from 'rollup-plugin-typescript2';
|
||||
import { terser } from "rollup-plugin-terser";
|
||||
import { getBabelOutputPlugin } from '@rollup/plugin-babel';
|
||||
|
||||
const projectRootPath = './packages';
|
||||
const projectSrcDirectory = './src';
|
||||
const projectDistDirectory = './dist';
|
||||
const projectTypesDirectory = './types';
|
||||
const projectEntry = 'index.ts';
|
||||
|
||||
export default async (config) => {
|
||||
const {
|
||||
'config-project': project,
|
||||
'config-src': src = projectSrcDirectory,
|
||||
'config-dist': dist = projectDistDirectory,
|
||||
'config-types': types = projectTypesDirectory,
|
||||
'config-entry': entry = projectEntry,
|
||||
} = config;
|
||||
|
||||
const projectPath = path.resolve(__dirname, projectRootPath, project);
|
||||
const srcPath = path.resolve(projectPath, src);
|
||||
const distPath = path.resolve(projectPath, dist);
|
||||
const typesPath = path.resolve(projectPath, types);
|
||||
const entryPath = path.resolve(srcPath, entry);
|
||||
|
||||
const packageJSONPath = path.resolve(projectPath, 'package.json');
|
||||
const tsconfigJSONPath = path.resolve(projectPath, 'tsconfig.json');
|
||||
const nodeModulesPath = path.resolve(projectPath, 'node_modules');
|
||||
|
||||
const { devDependencies = {}, peerDependencies = {} } = await import(packageJSONPath);
|
||||
|
||||
return {
|
||||
input: entryPath,
|
||||
output: [
|
||||
{
|
||||
name: "OverlayScrollbars",
|
||||
format: 'esm',
|
||||
file: path.resolve(distPath, `${project}.js`),
|
||||
sourcemap: true,
|
||||
exports: 'default',
|
||||
plugins: [getBabelOutputPlugin({
|
||||
presets: [['@babel/preset-env', {
|
||||
modules: 'umd',
|
||||
targets: {
|
||||
ie: "11"
|
||||
}
|
||||
|
||||
}]],
|
||||
plugins: [["@babel/plugin-transform-modules-umd", {
|
||||
globals: {
|
||||
"jquery": "jQuery"
|
||||
}
|
||||
}]],
|
||||
moduleId: "OverlayScrollbars"
|
||||
})]
|
||||
},
|
||||
{
|
||||
name: "OverlayScrollbars",
|
||||
format: 'esm',
|
||||
file: path.resolve(distPath, `${project}.esm.js`),
|
||||
sourcemap: true,
|
||||
exports: 'default',
|
||||
plugins: [getBabelOutputPlugin({
|
||||
presets: [['@babel/preset-env', {
|
||||
targets: {
|
||||
chrome: "51",
|
||||
firefox: "54",
|
||||
safari: "11"
|
||||
}
|
||||
}]],
|
||||
})]
|
||||
},
|
||||
/*
|
||||
{
|
||||
name: "OverlayScrollbars",
|
||||
format: 'esm',
|
||||
file: path.resolve(distPath, `${project}.esm.min.js`),
|
||||
sourcemap: false,
|
||||
exports: 'default',
|
||||
plugins: [getBabelOutputPlugin({ presets: ['@babel/preset-env', { modules: 'umd' }] }), terser(),],
|
||||
}
|
||||
*/
|
||||
],
|
||||
external: [
|
||||
...Object.keys(devDependencies),
|
||||
...Object.keys(peerDependencies)
|
||||
],
|
||||
plugins: [
|
||||
resolve({
|
||||
extensions: ['.ts', '.tsx', '.js', 'jsx'],
|
||||
customResolveOptions: {
|
||||
moduleDirectory: [
|
||||
srcPath,
|
||||
nodeModulesPath,
|
||||
path.resolve(__dirname, 'node_modules'),
|
||||
],
|
||||
}
|
||||
}),
|
||||
commonjs(),
|
||||
typescript({
|
||||
check: true,
|
||||
useTsconfigDeclarationDir: true,
|
||||
tsconfig: tsconfigJSONPath,
|
||||
tsconfigOverride: {
|
||||
compilerOptions: {
|
||||
target: 'es6',
|
||||
sourceMap: true,
|
||||
declaration: true,
|
||||
declarationDir: typesPath,
|
||||
},
|
||||
}
|
||||
}),
|
||||
]
|
||||
}
|
||||
};
|
||||
@@ -1,118 +0,0 @@
|
||||
import path from 'path';
|
||||
import TerserPlugin from 'terser-webpack-plugin';
|
||||
import { CleanWebpackPlugin } from 'clean-webpack-plugin';
|
||||
import { merge } from 'webpack-merge';
|
||||
|
||||
const projectRootPath = './packages';
|
||||
const projectSrcDirectory = './src';
|
||||
const projectDistDirectory = './dist';
|
||||
const projectTypesDirectory = './types';
|
||||
const projectEntry = 'index';
|
||||
|
||||
const outputs = [{
|
||||
extension: 'js',
|
||||
target: 'es5',
|
||||
ecmaVersion: 5,
|
||||
}, {
|
||||
extension: 'esm.js',
|
||||
target: 'es6',
|
||||
ecmaVersion: 6,
|
||||
}];
|
||||
|
||||
export default async (env) => {
|
||||
const {
|
||||
project,
|
||||
src = projectSrcDirectory,
|
||||
dist = projectDistDirectory,
|
||||
types = projectTypesDirectory,
|
||||
entry = projectEntry,
|
||||
production
|
||||
} = env;
|
||||
const projectPath = path.resolve(__dirname, projectRootPath, project);
|
||||
const srcPath = path.resolve(projectPath, src);
|
||||
const distPath = path.resolve(projectPath, dist);
|
||||
const typesPath = path.resolve(projectPath, types);
|
||||
const entryPath = path.resolve(srcPath, entry);
|
||||
|
||||
const webpackConfigPath = path.resolve(projectPath, 'webpack.config.js');
|
||||
const packageJSONPath = path.resolve(projectPath, 'package.json');
|
||||
const tsconfigJSONPath = path.resolve(projectPath, 'tsconfig.json');
|
||||
const nodeModulesPath = path.resolve(projectPath, 'node_modules');
|
||||
|
||||
const { default: webpackConfig } = await import(webpackConfigPath);
|
||||
const { compilerOptions } = await import(tsconfigJSONPath);
|
||||
const { devDependencies = {}, peerDependencies = {} } = await import(packageJSONPath);
|
||||
|
||||
const genConfigObj = ({ target, ecmaVersion, extension }, isFirstRun) => (merge({
|
||||
entry: entryPath,
|
||||
mode: production ? 'production' : 'development',
|
||||
devtool: 'source-map',
|
||||
optimization: {
|
||||
minimize: true,
|
||||
minimizer: [
|
||||
new TerserPlugin({
|
||||
sourceMap: true,
|
||||
extractComments: false,
|
||||
terserOptions: {
|
||||
mangle: {
|
||||
properties: {
|
||||
regex: /^_/
|
||||
}
|
||||
},
|
||||
output: {
|
||||
beautify: true,
|
||||
comments: false
|
||||
}
|
||||
},
|
||||
}),
|
||||
],
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.tsx?$/,
|
||||
exclude: /node_modules/,
|
||||
use: [
|
||||
{
|
||||
loader: 'ts-loader',
|
||||
options: {
|
||||
compilerOptions: {
|
||||
...compilerOptions,
|
||||
target: target,
|
||||
declarationDir: typesPath,
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.tsx', '.ts', '.js', 'jsx'],
|
||||
modules: [
|
||||
srcPath,
|
||||
nodeModulesPath,
|
||||
path.resolve(__dirname, 'node_modules'),
|
||||
],
|
||||
},
|
||||
output: {
|
||||
filename: `${project}.${extension}`,
|
||||
path: distPath,
|
||||
ecmaVersion
|
||||
},
|
||||
externals: [
|
||||
...Object.keys(devDependencies),
|
||||
...Object.keys(peerDependencies)
|
||||
],
|
||||
plugins: [
|
||||
].concat(isFirstRun ? [new CleanWebpackPlugin({
|
||||
verbose: true,
|
||||
cleanOnceBeforeBuildPatterns: [
|
||||
distPath,
|
||||
typesPath
|
||||
]
|
||||
})] : [])
|
||||
}, webpackConfig));
|
||||
|
||||
return outputs.map((output, index) => genConfigObj(output, index === 0))
|
||||
};
|
||||
Reference in New Issue
Block a user