2017-05-08 3 views

Antwort

1

Es gibt mehrere Möglichkeiten, Source-Mapping mit create-react-app zu erreichen, aber soweit ich weiß - müssen Sie in jedem Fall die Konfiguration des Webpacks bearbeiten. Configs und Skripte für npm CLI-Befehle (Start, Build, Eject) werden in einem Paket namens 'react-scripts' gespeichert. Es gibt zwei Möglichkeiten, auf sie zuzugreifen:

Option A) werfen Sie Ihr Projekt aus, indem Sie $ yarn eject ausführen. Dadurch werden alle verwandten Abhängigkeiten in Ihr Projekt package.json und auch in das rew-scripts package namens config und scripts in ein root Ihres Projekts extrahiert.

option B) Machen Sie Ihre eigenen benutzerdefinierten Reaction-Skripte-Paket (oder verwenden Sie jemandes). In diesem Fall müssen Sie nicht aus einem Projekt auswerfen und Ihr Projekt wird sauber sein. Auf diese Weise können Sie die Standard-Reaktionskripte durch Ihre eigenen ersetzen.

yarn remove react-scripts 
yarn add <your-custom-react-scripts> 

try Mine wenn Sie es wünschen - rulsky reagieren-Skripte - es kommt mit sass Verarbeitung (mit sourcemaps aktiviert) und browsersync.

In beiden Fällen müssen Sie node-sass und sass-loader in Abhängigkeitsgraphen hinzufügen (aber an verschiedenen Stellen).


Nächste Schritte Ich werde zeigen, wie sorceMap durch Projekt Auswerfen hinzuzufügen und übernehmen Sie Garn haben (weil mit CRA es besser ist, Garn zu verwenden). Alle Wege sind relativ zur Wurzel des Projekts

1) yarn eject

2) yarn add node-sass sass-loader

3) offen config/webpack.config.dev.js

4) in module.rules bearbeiten excudions für Datei-loader von Style-Dateien `` ``

- /\.css$/, 
+ /\.(css|scss|sass)$/, 

`` ``

5) in 'Stil bezogenen Kette von Ladern' erweitert 'test' Eigenschaft: `` ``

- test: /\.css$/, 
+ test: /\.(css|scss|sass)$/, 

`` ``

6) in den Optionen von ‚CSS-loader 'Eigentum sourceMap: true,.Es sollte wie so aussehen: `` ``

{ 
loader: require.resolve('css-loader'), 
    options: { 
    importLoaders: 1, 
    sourceMap: true, 
    }, 
}, 

`` ``

7) direkt nach 'CSS-loader' add 'Sass-loader' mit entsprechenden Optionen: `` `` Jetzt

{ 
loader: require.resolve('sass-loader'), 
    options: { 
    sourceMap: true, 
    } 
}, 

`` ``

8) müssen wir bearbeiten Produktionskonfiguration von webpack.

9) Öffnen Sie config/webpack.config.prod.js und nehmen Sie die gleichen Änderungen vor: Datei-Loader-Ausschlüsse und stilbezogene Loader-Kette.

+0

Vielen Dank für Ihre Hilfe. Im Webpack können wir es einfach konfigurieren. Aber ich möchte die Konfiguration von 'create-react-app' behalten, es sieht einfach für den Anfänger aus. Hast du eine andere Lösung? Bwt, 1 gerne für Ihre Unterstützung. :) –

+0

@VienNguyen hast du versucht, zu einem Befehl '--source-map' oder' -source-map-embed' hinzuzufügen? Hier finden Sie Details: https://github.com/sass/node-sass#sourcemap –

+0

Entschuldigung für die Verzögerung der Rückmeldung, aber es hat immer noch nicht funktioniert. –

0

Fügen Sie die "--source-map" Option mit dem Wert "true", wie im Beispiel unten:

node-sass-chokidar --source-map true --include-path ./node_modules src/styles/scss -o src/styles/css 
Verwandte Themen