Ein Webpackloader, um Einzelfilm-React-Komponenten zu aktivieren. Inspiriert von vue-loader .
.one Datei mitgelegt wurden (Erweiterung ist konfigurierbar)css-loader ) $ npm i --save-dev one-loader In webpack.config.js :
{
module : {
loaders : [
{
test : / .one$ / ,
loader : 'one-loader' ,
options : {
map : {
'text/css' : [ 'style-loader' , 'css-loader' ] ,
'javascript' : 'babel-loader'
}
}
}
]
}
} In ExampleComponent.one :
< style >
html {
background-color: green;
}
.basicExample {
color: white;
}
</ style >
< script >
export default ( ) => {
return < div className = "basicExample" >
Hello World
</ div >
}
</ script >Weitere Beispiele finden Sie im Beispielverzeichnis: Verzeichnis:
Das map Objekt in one-loader -Optionen ist dafür verantwortlich, dass sie Ladern in Ihre Einzelkomponenten zuweisen.
Wenn keine Zuordnung bereitgestellt wird, wird der Inhalt <style> mit css-loader verarbeitet und der Inhalt <script> bleibt unverändert. Diese Standardwerte sind in der Datei options.js definiert.
Die type -Eigenschaft kann verwendet werden, um <style> und <script> Tags benutzerdefinierte Typen zuzuweisen:
< style type =" text/less " >
.component {
text-align: center;
}
</ style >
< script type =" es6 " >
</ script >Es gibt keine Einschränkungen bei der Benennung vom Typ, sodass eine Zeichenfolge funktioniert, aber beschreibende Werte werden empfohlen.
Die interne Architektur des Laders erfordert das Übergeben des Optionsobjekts an Unterlader über eine require Zeichenfolge. Dies verursacht derzeit Probleme, wenn Sie map in Saiten mit einem ! Separator. Somit wird die Array -Syntax für die Definition kartierter Lader empfohlen.
Dies wird nicht funktionieren:
{
module : {
loaders : [
{
test : / .one$ / ,
loader : 'one-loader' ,
options : {
map : {
'text/css' : 'style-loader!css-loader' ,
'javascript' : 'babel-loader'
}
}
}
]
}
}Dies wird funktionieren:
{
module : {
loaders : [
{
test : / .one$ / ,
loader : 'one-loader' ,
options : {
map : {
'text/css' : [ 'style-loader' , 'css-loader' ] ,
'javascript' : 'babel-loader'
}
}
}
]
}
} MIT