Podczas konfigurowania Reacta w projekcie Django natknąłem się na ten błąd
ModuleBuildError in Module build failed (from ./node_modules/babel-loader/lib/index.js): SyntaxError: C: \ Users \ 1Sun \ Cebula3 \ cebula_react \ asset \ js \ index.js: Wsparcie dla eksperymentalnej składni 'classProperties 'nie jest obecnie włączona (17: 9):
15 |
16 | class BodyPartWrapper extends Component {
> 17 | state = {
| ^
18 |
19 | }
20 |
Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the
'plugins' section of your Babel config to enable transformation.
Więc zainstalowałem @ babel / plugin-offer-class-properties i umieściłem to w babelrc
package.json
{
"name": "cebula_react",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "webpack-dev-server --config ./webpack.config.js --mode development",
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack --config prod.config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"babel": {
"presets": [
"@babel/preset-env",
"@babel/preset-react"
]
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/plugin-proposal-class-properties": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/preset-react": "^7.0.0",
"babel-loader": "^8.0.2",
"babel-plugin-transform-class-properties": "^6.24.1",
"react-hot-loader": "^4.3.6",
"webpack": "^4.17.2",
"webpack-bundle-tracker": "^0.3.0",
"webpack-cli": "^3.1.0",
"webpack-dev-server": "^3.1.8"
},
"dependencies": {
"react": "^16.5.0",
"react-dom": "^16.5.0"
}
}
babelrc
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-proposal-class-properties"
]
}
Jednak błąd nadal istnieje, na czym polega problem?
@babel/plugin-proposal-class-properties
ibabel-plugin-transform-class-properties
. Odbudowujesz po instalacji, tak?npx babel-upgrade --write --install
Odpowiedzi:
Zmiana
Do
To zadziałało dla mnie
źródło
.babelrc
, abybabel.config.js
i wykorzystaniemodule.export
jak stackoverflow.com/questions/53916434/... jak omówiono na github github.com/babel/babel/issues/7879#issuecomment-419732313Test suite failed to run; .loose is not a valid Plugin property
Najpierw zainstaluj: @ babel / plugin-offer-class-properties jako dev dependencty:
Następnie edytuj plik .babelrc, aby wyglądał dokładnie tak:
Plik .babelrc znajduje się w katalogu głównym, w którym znajduje się pakiet.json .
Zauważ, że powinieneś ponownie uruchomić serwer deweloperski webpacka, aby zmiany zostały wprowadzone.
źródło
Rozwiązanie dla projektu webpacka
Po prostu rozwiązuję ten problem, dodając
@babel/plugin-proposal-class-properties
wtyczkę konfiguracyjną do webpacka. Sekcja modułu mojegowebpack.config.js
wygląda takźródło
zamień swój plik .babelrc na powyższy kod. rozwiązało problem za mnie.
źródło
npm install --save-dev @babel/preset-env @babel/preset-react @babel/plugin-proposal-class-properties
@babel/plugin-proposal-class-properties
zależności.W katalogu głównym mojego środowiska pracy nie było pliku .babelrc. Jednak następujący wpis w package.json rozwiązał problem.
Uwaga: Nie zapomnij wyjść z konsoli i otworzyć ją ponownie przed wykonaniem poleceń npm lub yarn.
źródło
Po prawie 3 godzinach poszukiwań i spędzenia czasu na tym samym błędzie stwierdziłem, że używam importu nazw dla Reacta:
co jest całkowicie błędne. Wystarczy przełączyć go na:
wszystkie błędy zniknęły. Mam nadzieję, że to komuś pomoże. To jest mój .babelrc:
plik webpack.config.js
plik package.json
źródło
Zainstaluj właściwości klasy-propozycji wtyczki
npm install @babel/plugin-proposal-class-properties --save-dev
Zaktualizuj plik webpack.config.js, dodając
'plugins': ['@babel/plugin-proposal-class-properties']}]
źródło
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - configuration.plugins[1] should be one of these: object { apply, … } | function -> Plugin of type object or instanceof Function Details: * configuration.plugins[1] should be an object. -> Plugin instance * configuration.plugins[1] should be an instance of function -> Function acting as plugin
Uważam, że problem
.babelrc
został zignorowany, jednak tworzębabel.config.js
i dodaję:I to działa dla mnie w aplikacji React Native, myślę, że pomogłoby to również aplikacjom React.
źródło
module.exports = { "presets": ["module:metro-react-native-babel-preset"], "plugins": ["@babel/plugin-proposal-class-properties"] }
wystarczyło mi. Czy możesz zaktualizować swoją odpowiedź, a także powinniśmy zrozumieć, dlaczego.babelrc
została zignorowanaWłaśnie przetestowałem na Laravel Framework 5.7.19 i następujące kroki działają:
Upewnij się, że plik .babelrc znajduje się w folderze głównym aplikacji i dodaj następujący kod:
Biegnij
npm install --save-dev @babel/plugin-proposal-class-properties
.Biegnij
npm run watch
.źródło
Jawnie używam parsera Babel. Żadne z powyższych rozwiązań nie zadziałało. To zadziałało.
źródło
Zgodnie z tym problemem z GitHubem, jeśli używasz aplikacji create-react-app, powinieneś skopiować swoje konfiguracje
.babelrc
lubbabel.config.js
do nichwebpack.config.js
i je usunąć. Ponieważ są to dwie linie kodu,babelrc: false,configFile: false,
twoja konfiguracja w babelrc, ... jest bezużyteczna. a twójwebpack.config.js
jest w twoim./node_madules/react-scripts/config
folderze rozwiązałem mój problem w ten sposób:źródło
Przeniesienie
state
wnętrzaconstructor function
zadziałało dla mnie:Powodzenia...
źródło
Używam przędzy. Musiałem wykonać następujące czynności, aby przezwyciężyć błąd.
źródło
Dodawanie
do
.babelrc
prac dla mnie.źródło
yarn add --dev @babel/plugin-proposal-class-properties
lub
npm install @babel/plugin-proposal-class-properties --save-dev
.babelrcźródło
Jeśli ktoś pracuje nad monorepo, śledzi reakcję-native-web-monorepo , musisz to
config-overrides.js
zgłosićpackages/web
. musisz dodaćresolveApp('../../node_modules/react-native-ratings'),
w tym pliku ...Mój kompletny
config-override.js
plik toźródło
Napotkałem ten sam problem podczas próby transpozycji niektórych plików jsx za pomocą babel. Poniżej znajduje się rozwiązanie, które działało dla mnie. Możesz dodać następujący plik json do swojego pliku .babelrc
źródło
Dla projektów React z pakietem internetowym:
.babelrc
(jeśli nie istnieje) plik w folderze głównym, gdziepackage.json
iwebpack.config.js
są obecne i dodać do tego kodu poniżej:webpack.config.js
pliku:npm start
ponownie.źródło
Utworzyłem dowiązanie symboliczne dla src / components -> ../../components, które spowodowało
npm start
zwariowanie i zaprzestanie interpretowania src / components / *. Js jako jsx, dając w ten sposób ten sam błąd. Wszystkie instrukcje dotyczące naprawy z oficjalnej babel były bezużyteczne. Kiedy skopiowałem z powrotem katalog komponentów, wszystko wróciło do normy!źródło