2016-10-05 2 views
2

Ich versuche mein Projekt mit Rollup zu erstellen. Ich habe die meiste Arbeit (einschließlich Angular 2), aber ich bin nicht in der Lage, einige meiner Polyfills zu transformieren, da sie Anrufe an require() in ihnen haben. Selbst mit den rollup-plugin-node-resolve und rollup-plugin-commonjs wird es die require s überhaupt nicht berühren.Wie Rollup erhalten, um request() -Aufrufe zu transformieren?

Also, wie kann ich sie transformieren? Eine Problemumgehung, die ich verwenden könnte, ist, die Polyfills zu browserisieren und dann das browserisierte Paket in den Rollup-Prozess aufzunehmen, aber das erfordert eine Menge zusätzlicher Plugins und ist nicht gerade eine saubere Lösung, zumal ich dachte, dass Rollup es verstehen sollte CommonJS.

Hier finden Sie einige Test-Code für Node.js:

"use strict"; 
let rollup = require("rollup"); 
let fs = require("fs"); 
let resolve = require("rollup-plugin-node-resolve"); 
let commonjs = require("rollup-plugin-commonjs"); 

rollup.rollup({ 
    entry: "src/main.js", 
    plugins: [ 
     resolve({ 
      jsnext: true, 
      main: true 
     }), 
     commonjs({ 
      include: '**', // also tried src/** node_modules/** and a lot of other stuff. 
          // Leaving this undefined stops rollup from working 
     }), 
    ] 
}).then(function(bundle) { 
    bundle.write({ 
     format: "iife", 
     dest: "www/bundle.js" 
    }) 
}); 

Dann eine einfache Datei als src/main.js verwenden, die nur die Zeile require("./some-file.js"); und eine src/some-file.js enthält, die alles das Problem demonstriert enthält.

Antwort

2

Ich habe es mit Hilfe der netten Jungs von Rollup-gitter gelöst.

ich brauchte, wie so ein moduleName die bundle.write Optionen hinzuzufügen:

bundle.write({ 
    format: "iife", 
    dest: "www/bundle.js" 
    moduleName: "someModule" 
}) 
Verwandte Themen