2016-07-21 26 views
0

ich aus einem Rubin auf Schienen Hintergrund kommen, und ich würde gerne wissen, ob ich richtig den folgenden Code bin Verständnis ...Unterschied zwischen foo.join und foo.resolve? In webpack

meine derzeitigen webpack.config.js sieht aus wie unten ...

var path = require('path'); 

module.exports = { 
    context: path.join(__dirname, 'src'), 
    entry: [ 
    './app.js' 
    ], 
    ... etc 

Was wäre der Unterschied, wenn ich tat

... (omitted code) 

    context: path.resolve(__dirname, '../src'), 

... etc 

Does resolve sucht die Datei im Verzeichnis, und wenn es nicht schafft für mich nicht existiert? Wie ein if defined in ruby

Dank und Entschuldigung für die dumme Frage.

Antwort

1

path.join ist im Grunde nur Zeichenfolge Verkettung mit den richtigen Verzeichnis Trennzeichen für das Host-Betriebssystem (in der Regel / oder \). path.resolve macht das gleiche aber auch den absoluten Pfad, ausgehend von dem Stammverzeichnis Ihres Systems.

In Ihrem Fall wird der resultierende Pfad das gleiche sein, weil __dirname bereits ein absoluter Pfad ist, so einfach Verkettung mit path.join erzeugt das gleiche Ergebnis wie path.resolve, die einen absoluten Pfad garantiert.

Keine der Methoden erstellt Verzeichnisse oder Dateien, die nicht existieren - sie geben Ihnen eine Pfadzeichenfolge, unabhängig davon, ob dort überhaupt etwas erreicht werden kann.

Edit: beachten Sie, dass path.join und path.resolve sind Methoden der NodeJS path Modul speziell docs - sie sind nicht allgemeine Methoden Javascript

+0

Dank für die Klarstellung. Ich habe eine andere Frage, jetzt habe ich '' ' Eintrag: [ './main.js', ]' '' – intercoder

+0

Sorry, außerhalb der Zeit das ist der Fehler, ich bekomme '' 'ERROR in ./src/main.js Modulaufbau fehlgeschlagen: SyntaxError: /Users/DS/Code/tryouts/react-project-setup/.babelrc: Fehler beim Parsen von JSON - Erwartet ':' anstelle von '[' '' ' – intercoder

+0

Sieht so aus, als wäre Ihr '.babelrc' nicht korrekt formatiert - möglicherweise nur ein' '' nach einem der Schlüssel. Sie können versuchen, den Inhalt von '.babelrc' in http://jsonlint.com/ zu kopieren und einzufügen, um genauere Informationen zu erhalten. JSON kann keine abschließenden Kommas haben, bevor '' '' '' '' '' '' '- also pass auf diese auf. –