2016-10-03 3 views
1

Ich habe meine ionic App von Beta 11 auf rc0 aktualisiert. Das bedeutet, dass ich von angular2 rc4 zu angular2 stable gewechselt bin, von typescript 1.8 zu 2 und den Rollupjs Modul Bundler benutzt habe.Firebase ionic2-rc0 und Rollup - "Rollup: Die Verwendung von` eval` wird dringend empfohlen "

Ich habe nach diesem Blog-Eintrag konfiguriert AngularFire2: Getting Started with Ionic 2 RC0, Firebase 3 + AngularFire 2

Ich bin diesen Fehler zu kompilieren und zu immer nicht in der Lage:

weiß

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

Wer, was und wie geht dies zu bewältigen?

Antwort

1

Langfristig ist die Lösung für Firebase direkt eval von ihrem Code zu entfernen, da es hier eigentlich nicht notwendig ist (es JSON zu analysieren nur benutzt, um zu werden. JSON.parse viel schneller ist, und die Unterstützung ist im Grunde kein Thema dieser Tage).

In der Zwischenzeit eine mögliche (wenn auch Hacky) Abhilfe ein, dass eval in indirekteneval (siehe troubleshooting note den Unterschied zu verstehen) konvertieren auch sein mag, mit 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

Vielen Dank für die Antwort. Ich denke, ich habe irgendwo andere schwerwiegende Fehler und deshalb kann ich nicht kompilieren. Ich denke, die Verwendung von Eval ist kein Fehler, also behalte ich die Dinge so, wie sie sind. Danke nochmal, – Dee

2

Sie deaktivieren können Diese Warnung in Rollup-Konfig:

// 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); 
    } 
};