Я зробив цей "віджет", який клієнти можуть завантажувати на свій веб-сайт за кутовий2. наприклад,
<some-name config="clientcode"></some-name>
Є ще кілька налаштувань і т. Д., Але це не відповідає, значення витягуються з нативного елемента, все, здається, добре працює і в стародавніх браузерах.
Проте один клієнт використовує всі ці фантазії поліфільмів / шаблонів (без перевірки, якщо вони "там так:
Object.extend(Function.prototype, {
argumentNames: function() {
var a = this.toString().match(/^[s(]*function[^(]*(([^)]*))/)[1].replace(/s+/g, "").split(",");
return 1 != a.length || a[0] ? a : []
},
bind: function() {
if (2 > arguments.length && Object.isUndefined(arguments[0]))
return this;
var a = this
, b = $A(arguments)
, c = b.shift();
return function() {
return a.apply(c, b.concat($A(arguments)))
}
}, ... });
Ці конфлікти з моїм кутовий2 віджет, особливо останні 4 рядка цього фрагмента (насправді це не останній).
Цікава частина полягає в тому, що всі працювали на RC5,який мені довелося згорнути повертатися до. Хто-небудь знає, чи зможу я змусити angular2 / webpack включати ці шаблони, щоб перевизначити моєму клієнту? А забезпечити, щоб він завжди працював вбудований в існуючий веб-сайт? Це призведе до трохи роздутого, але в цьому випадку це не є величезна кількість справ, оскільки це веб-сайт / сервіс люди будуть використовувати один раз на місяць, або, можливо, раз на тиждень.
Відповіді:
1 для відповіді № 1Зазвичай поліфільди (core-js
зокрема) не буде застосовано, якщо ця функція вже існує.
Якщо проблему можна звести до bind
, його можна видалити перед додаванням поліфіль до проекту:
if (Function.bind && !/[native code]/.test(Function.bind)) {
delete Function.prototype.bind;
}
import "core-js/shim";