/ / Enforce es6 Браузерні накладки в кутовій частині 2 / webpack - кутові, webpack, webshim

Запровадити es6 Браузерні накладки в кутовій частині 2 / webpack - кутові, webpack, webshim

Я зробив цей "віджет", який клієнти можуть завантажувати на свій веб-сайт за кутовий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";