2016-10-03 2 views
1

Я обновил свое ионное приложение от бета-версии 11 до rc0. Таким образом, это означает, что я переключился с углового2 rc4 на угловое стабильное, с машинописного текста с 1,8 до 2 и с помощью модуля расширения rollupjs.Firebase ionic2-rc0 и rollup - «rollup: использование` eval` сильно обескуражено »

Я настроил AngularFire2 согласно этому сообщению в блоге: Getting Started with Ionic 2 RC0, Firebase 3 + AngularFire 2

Я не в состоянии собрать и получить эту ошибку:

rollup: Use ofeval(in c:\XXX\node_modules\angularfire2\node_modules\firebase\firebase.js) is strongly discouraged, as it poses security risks and may cause issues with minification. See https://github.com/rollup/rollup/wiki/Troubleshooting#avoiding-eval for more details

Любой знает, что происходит и как решить это?

ответ

1

Долгосрочное решение для Firebase удалить прямой eval из их кода, как это на самом деле не нужно здесь (это просто используется для разбора JSON. JSON.parse гораздо быстрее, и поддержка в основном не проблема этих дней).

В то же время, возможный (хотя Hacky) обходной путь может быть, чтобы преобразовать эту eval в непрямойeval (см troubleshooting note понять разницу), используя rollup-plugin-replace:

// rollup.config.js 
import nodeResolve from 'rollup-plugin-node-resolve'; 
import commonjs from 'rollup-plugin-commonjs'; 
import replace from 'rollup-plugin-replace'; 
// ...etc 

export default { 
    // ...other config... 
    plugins: [ 
    nodeResolve({...}), 
    commonjs({...}), 
    replace({ 
     include: 'node_modules/firebase/firebase.js', 
     values: { 
     'eval(' : '[eval][0](' 
     } 
    }) 
    ] 
}; 
+0

Благодарим за ответ. Я думаю, что у меня есть более серьезные ошибки в другом месте, и поэтому я не могу скомпилировать их. Я думаю, что использование eval не является нарушающей ошибкой, поэтому я буду держать вещи такими, какие они есть. Еще раз спасибо, – Dee

2

Вы можете отключить это предупреждение в конфигурации накопителя:

// rollup.config.js 

export default { 
    // ...other config... 
    onwarn: function (message) { 
    if (/Use of `eval` \(in .*\/node_modules\/firebase\/.*\) is strongly discouraged/.test(message)) { 
     return; 
    } 
    console.error(message); 
    } 
};