今天使用rollup开发npm包,每次打包后,都会出现这段License:
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
一开始很纳闷,我写的代码,license不应该是我吗🤔 为什么是Microsoft Corporation😂
然后才意识到,因为__assign
这个函数是Microsoft Corporation写的,因为代码在编译至es5时,针对{ ...obj }
语法用到了__assign
函数。
这个License删不得,但是压缩后的代码,看着不太舒服(我有强迫症)。
解决方案
方案一:编译target不用es5,用es6。
方案二:【推荐】不用 { ...obj }
语法浅拷贝,改用Object.assign({}, obj)
浅拷贝(相对__assign效率还高些)。
再次编译,代码整洁了许多,爽!