2015-01-10 7 views
8

Ich habe eine Ordnerstruktur für meine JS-Module. Ich möchte ein Modul pro Seite. Dies ist keine einzelne Seite App.Wie kann ich mehrere Ordner mit Webpack ausgeben?

Wie kann ich Dateien in einer Ordnerstruktur ausgeben?

Von was ich sehen kann, ist die einzige Möglichkeit, [name].js auszugeben. Dies könnte funktionieren, wenn ich die Namen sehr einzigartig mache, oder ich könnte die Namen eine - für ein Ordnertrennzeichen haben. Das würde bedeuten, a/b/c.js würde zu Name a-b-c übersetzen. Ich mag das wirklich nicht. Ich möchte gerne require("a/b/c").

Von dem, was ich sagen kann, kann ich nicht eine einzelne gebündelte Datei entweder verwenden, weil require außerhalb des Moduls nicht verfügbar ist. Wenn es so wäre, könnte ich einfach ein einzelnes Bündel und require("a/b/c") auf jeder Seite erstellen.

Wenn es eine gute Möglichkeit gibt, dies zu tun, die ich nicht im Internet finde, lass es mich wissen.

Es sieht so aus, als ob ich das mit require.js leicht mit r.js machen kann, aber ich möchte require.js nicht verwenden und möchte CommonJS-Module.

+0

Ich mache etwas ähnliches, aber nicht das Gleiche. In meiner 'webpack.config.js' habe ich verschiedene Konfigurationen erstellt, zwischen denen ich je nach der Umgebungsvariable NODE_ENV wechsle, die ich bei der Ausführung verschiedener 'npm'-Skripte einstelle. Zum Beispiel habe ich in meinem 'package.json' ein Skript namens' build-dev', das '' set NODE_ENV = development && webpack "' ausführt. Hoffe das gibt dir ein paar Ideen! – Ganonside

Antwort

1

Sie können [Name] verwenden, um neue Ordner zu erstellen. Wie folgt aus:

output: { 
    path: __dirname, 
    filename: '[name]/[name].js', 
    chunkFilename: '[name].js', 
    publicPath: '/assets/' 
}, 
10

Sie können einen Einstiegspunkt mit Schrägstrich, wie folgt definieren:

entry: { 
    "main-plugin/js/background":"./src/main-plugin/background" 
} 

Und output wie folgt aus:

output: { 
    path: path.join(__dirname, 'public'), 
    filename: '[name].js' 
}, 

Dieses Setup einen public/main-plugin/js Ordner erstellen und wird Platziere die background.js darin. Es funktioniert mindestens auf Win7x64.

Verwandte Themen