Ich bin ein Babel-Neuling, ich richte ein neues Projekt ein, installierte Babel, installierte React-dnd über Bower und meine .babelrc hat die folgende Zeile
{
"presets": ["es2015", "stage-0", "react"]
}
Modul-Build fehlgeschlagen: ReferenceError:
[BABEL] <path>\bower_components\react-dnd\src\index.js: Using removed Babel 5 option: <path>\bower_components\react-dnd\.babelrc.stage - Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets
Was mache ich falsch
Hallo @jagan-veeraraghavan! Wie binden Sie React-dnd in Bower ein? Sie sollten dabei sein wie diese .
Es sieht so aus, als würden Sie Bower stattdessen auf das gesamte Github-Repository verweisen. Dies funktioniert nicht, da es .babelrc
, eine Babel 5-Konfigurationsdatei, die mit der von Ihnen verwendeten Babel-Version nicht kompatibel ist (6). Die npm-Distribution lässt diese Datei weg (übrigens empfehlen wir, npm über Bower zu verwenden).
Wenn ich falsch liege, kannst du das Problem gerne erneut öffnen. Auch für Support-Fragen wie diese würde ich den gitter room empfehlen.
HI, ich bin auf ein ähnliches Problem mit Webpack und Babel 6 gestoßen.
ERROR in ./~/dnd-core/lib/index.js
Module build failed: ReferenceError: [BABEL] /node_modules/dnd-core/lib/index.js:
Using removed Babel 5 option: /node_modules/dnd-core/.babelrc.stage - Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets
hier meine einstellungen:
Paket.json
{
"devDependencies": {
"babel-core": "^6.3.26",
"babel-loader": "^6.2.1",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-stage-0": "^6.5.0",
"css-loader": "^0.23.1",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.8.5",
"jquery": "^2.2.1",
"less": "^2.6.1",
"less-loader": "^2.2.2",
"style-loader": "^0.13.0",
"url-loader": "^0.5.7",
"webpack": "^1.12.9",
"webpack-dev-server": "^1.14.0"
},
"dependencies": {
"babel-polyfill": "^6.3.14",
"expose-loader": "^0.7.1",
"jquery": "^2.1.4",
"lodash": "^3.10.1",
"react": "^0.14.7",
"react-dnd": "^2.1.3",
"react-dnd-html5-backend": "^2.1.2",
"react-dom": "^0.14.7",
"tracking": "^1.1.2"
}
}
.babelrc
{
"presets": ["react", "es2015", "stage-0"]
}
Webpack
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader'
}
]
}
};
kann mir bitte jemand helfen?
Ahhh, ich habe es behoben, indem ich node_modules
in der webpack.conf ausgeschlossen habe: Tänzer:
{
exclude: /(node_modules|bower_components)/,
test: /\.js$/,
loader: 'babe-loader'
},
es löst mein Problem, vielen Dank!
@walter0331
Lader: 'babe-loader'
Das sollte eine Sache sein.
@billyjanitsch hast du schon daran
Ich stoße auf dieses Problem mit Webpack und Babel 6. Ähnlich wie @walter0331. Ich muss das durch mein Babel laufen lassen, da wir eine benutzerdefinierte Verkleinerung von node_modules
also wird mir das Ausschließen von node_modules
nicht helfen.
Nur um es klarzustellen, ich denke, jeder meint "Babel-Loader" und nicht "Babe-Loader".
loader: 'babel-loader'
Ich versuche, von babel5.x auf 6.x zu aktualisieren und erhalte denselben Fehler. Ich verwende React, Redux mit Babel 6 und Webpack.
Unten ist meine Webpack-Konfiguration (teilweise)
Modul: {
Lader: [
{ Test: /.svg$/, Ausschluss: /.less$/, Ladeprogramm: 'svg-inline'},
{ test: /.coffee$/, loader: 'coffee-loader' },
{ test: /.jsx?$/, ausschließen: /node_modules/,
Lader:
['react-hot-loader/webpack', 'babel-loader?' + JSON.stringify({
Voreinstellungen: ['es2015','stage-0','reagieren'],
Plugins: ['transform-decorators-legacy',
['transform-async-to-module-Methode',
{'module': 'bluebird', 'method': 'coroutine'}
]]
})
]
},
{ test: /.less/, loader: 'style-loader!css-loader!less-loader' },
{ test: /.css/, loader: 'style-loader!css-loader' },
{ test: /.json$/, loader: 'json-loader' },
{ test: /.gif$/, loader: "url-loader?mimetype=image/png" },
{ test: /.woff(2)?(\?v=[0-9].[0-9].[0-9])?$/, loader: "url-loader?limit=10000&minetype=application/ font-woff" },
{ test: /.(ttf|eot|svg)(\?v=[0-9].[0-9].[0-9])?$/, loader: "file-loader" },
{ Test: /jquery.js$/, Ladeprogramm: 'expose?jQuery' },
]
},
.babelrc
{
"presets": ["es2015", "react", "stage-0"],
"plugins": ["transform-decorators-legacy", ["transform-async-to-module-method", {
"modul": "bluebird",
"Methode": "Koroutine"
}]]
}
Mir ist aufgefallen, dass diese Fehlermeldung hauptsächlich für die Dateien angezeigt wird, in die ich Promise von 'bluebird' importiere.
Kann jemand helfen?
stoßen. Gibt es eine Möglichkeit, die Babel-Konfigurationen der Abhängigkeiten zur Build-Zeit zu ignorieren ...?
@walter0331 vielen Dank, dieses Problem macht mich nicht so verwirrt, bis ich Ihre Lösung gelesen habe. Aber ich verstehe das Prinzip nicht, warum es funktionieren kann, wenn man so einstellt: exclude: /(node_modules|bower_components).
@ry928330 im Grunde wird die disposables
Bibliothek in react-dnd
, und disposables
verwendet eine veraltete Babel-Version, Babel 5 (diese Bibliothek wird nicht gepflegt). Wenn es in der Webpack-Konfiguration enthalten ist, führt dies zu einem Konflikt, da wir jetzt bei der Version 6 von Babel sind. Die bessere Lösung hier (zumindest das, was bei mir funktioniert hat), ist nicht unbedingt alle node_modules auszuschließen, sondern nur das widersprüchliche.
Fügen Sie exclude: /(disposables)/
in Ihre Babel-Loader-Webpack-Konfiguration ein, zum Beispiel:
{
test: /\.js$/,
exclude: /(disposables)/,
loader: 'babel-loader',
}
Das ist die richtige Lösung. Es ist unerheblich, welche Version von Babel disposables
unter der Haube verwendet. Das eigentliche Problem ist, dass Sie versuchen, node_modules
mit Babel zu kompilieren. Dies ist nicht immer sicher und Sie sollten dies nicht tun, es sei denn, Sie wissen, was Sie tun, und entscheiden sich nur für bestimmte Pakete (oder verwenden Sie ein anderes Signal wie das Feld engines
und ignorieren Sie die Konfiguration).
Das heißt, ich habe einen "Fix" in [email protected]
. Dennoch, wenn Sie alles in node_modules
kompilieren, fragen Sie nach Problemen.
mix.webpackConfig({
module: {
rules: [{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: Config.babel()
}
}]
}
})
es funktioniert, danke!
Ich habe es behoben, indem ich [] hinzugefügt habe
presets: [ ["es2015", { loose: false }] ]
das ist mir passiert, nachdem ich versehentlich stage: 1
zu meiner server/.babelrc
Datei hinzugefügt habe.
{
"presets": ["es2015", "stage-0"],
"plugins": ["transform-runtime"],
stage: 1
}
behoben, indem Sie dies entfernen
{
"presets": ["es2015", "stage-0"],
"plugins": ["transform-runtime"],
}
Hilfreichster Kommentar
@walter0331
Das sollte eine Sache sein.