MobX Observable Decorators mit create-react-app verwenden

8

Die MbX-Dokumente sag mir, ich muss "das transform plugin transform-decorators-legacy verwenden und sicherstellen, dass es zuerst in der plugins-Liste ist", damit die Decorators funktionieren. Das MobX-Boilerplate-Projekt schlägt vor, dass ich ein .babelrc like:

brauche %Vor%

Wie mache ich das mit einem von create-react-app generierten Projekt? Jeder Versuch, @ Decorators Fehler zu verwenden. Es gibt kein .babelrc , selbst nachdem das Projekt "ausgeworfen" wurde.

    
Scott 01.09.2016, 03:09
quelle

5 Antworten

8

Sie können die Dekoratorsyntax nur verwenden, wenn Sie eject verwenden . Sie können jedoch MobX ohne @ verwenden, da es sich nur um eine Syntaxzucker handelt.

Dan Abramov hat den Grund dafür angegeben

  

Unsere Position ist einfach: Wir fügen Transformationen hinzu, die entweder stabil sind   Genug (wie async / erwarten) oder stark von Facebook (wie Klasse   Eigenschaften). Nur das lässt uns zuversichtlich sein, sie zu empfehlen,   Denn wenn sich im Standard etwas ändert, schreiben und veröffentlichen wir   ein Codemod, um von ihnen weg zu migrieren.

     

Da wir derzeit keine Dekoratoren verwenden, nehmen wir das nicht an   uns selbst einen Migrationspfad zur Verfügung stellen, wenn der Standard wird   unvereinbar. Zusätzlich werden Dekorateure nicht einmal offiziell unterstützt   von Babel (-legacy ist aus einem bestimmten Grund da). Und wenn sie konfiguriert sind   etwas falsch Leute beschuldigen Reagieren.

Sie können auch in create-react-app-mobx

schauen

Ähnliche Diskussionen:

Alik 01.09.2016, 03:50
quelle
9

Es gibt jetzt eine Alternative, die zum Zeitpunkt der angenommenen Antwort nicht verfügbar war. Es sind benutzerdefinierte Reaktionsskripte . Damit können Sie Dekorateure, SASS und andere Feinheiten in Ihrer CRA-App aktivieren. Und das ohne Auswerfen.

Es gibt einen schönen Medienartikel , in dem die dahinterstehenden Ideen erklärt werden es.

    
AlanP 26.10.2016 21:34
quelle
2

Sie können Ссылка

verwenden

React App Rewired gibt Ihnen Zugriff auf die Konfiguration, die Sie zum Einrichten des Pakets benötigen.

%Vor%

Hinweis: Dies erspart Ihnen das Auswerfen. CRA unterstützt keine Änderung der Konfiguration Ссылка .

    
Tim Arney 30.03.2017 10:49
quelle
1

Jetzt können Sie require.resolve('babel-plugin-transform-decorators-legacy') in das Array node_modules / babel-preset-react-app / index.js plugins

schieben     
皮蛋君 03.07.2017 00:50
quelle
0

Das ist die beste Lösung, die ich ohne Auswerfen gefunden habe. Ersetze Create-React-Skripte.

Ссылка

Wenn Sie ein neues Projekt starten, verwenden Sie dieses in Ihrem Terminal:

%Vor%

Wechseln Sie dann in das my-app-Verzeichnis und erstellen Sie eine .env-Datei. Bearbeiten Sie die .env-Datei wie folgt:

%Vor%

Ihre App unterstützt nun Dekoratoren.

Wenn Sie eine bestehende App haben und diese hinzufügen möchten. Fügen Sie die .env wie oben hinzu:

%Vor%

entferne react-scripts in deinem package.json. Ändern Sie nicht die Skripts von react-scripts start to create-react-scripts start. Belassen Sie die Skripte so wie sie sind.

Fügen Sie jetzt Ihre Mobx-Sachen mit Dekorateuren hinzu und genießen Sie weniger Standardcode.

mein endgültiges Paket.json

{ "name": "mobx-test", "version": "0.1.0", "private": true, "dependencies": { "custom-react-scripts": "^0.2.1", "mobx": "^3.4.0", "mobx-react": "^4.3.5", "react": "^16.2.0", "react-dom": "^16.2.0" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --env=jsdom", "eject": "react-scripts eject" } }

oh und wenn Sie vscode verwenden, möchten Sie die Warnungen über nicht unterstützte Dekoratoren ausblenden. Fügen Sie dazu Ihrem Projekt eine tsconfig.json-Datei mit diesem

hinzu

{ "compilerOptions": { "experimentalDecorators": true, "allowJs": true } }

    
Richard Torcato 05.12.2017 16:22
quelle

Tags und Links