Warum webpack brauchen Sie eine leere Erweiterung
Ich versuche, herauszufinden, warum webpack benötigt diese leere extension.
Innen resolve.extensions
es gibt immer diese Art der Konfiguration:
extensions: ['', '.js', '.jsx']
Warum kann es nicht sein nur dies:
extensions: ['.js', '.jsx']
- siehe auch hier: github.com/webpack/webpack/issues/3043
- Ich glaube, du bist mit webpack 1. Upgrade beheben sollte. webpack-gatsby.netlify.com/how-to/upgrade-from-webpack-1/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der Dokumentation:
In anderen Worten, wenn Sie nicht zählen die leere Zeichenfolge und benötigt ein Modul als
./foo.js
, webpack Aussehen würde für./foo.js.js
und./foo.js.jsx
statt.In einer neueren Webpack-Version können Sie nicht verwenden Sie eine leere Zeichenfolge. Es sagt:
Getting error: configuration.resolve.extensions[0] should not be empty
.Verwenden Sie
extensions: ['.js', '.jsx']
oderextensions: ['*', '.js', '.jsx']
.Problem: https://github.com/webpack/webpack/issues/3043
Dies wurde geändert, jetzt in webpack2.
Nun musst du nur:
Und wenn Sie
''
im array wirft er den Fehler:Den
''
Erweiterung ist nur wirklich notwendig, wenn Sie benötigen Sie eine Datei mit vollem Namen:Webpack wird immer einer der
extensions
beim Versuch, eine Datei zu suchen, entlang der Linien von:Wenn die
nameGiven
enthält den vollständigen Dateinamen, z.B.require('./foo.js')
, werde es noch anfügen jede Erweiterung:Gegenüber: