Używam webpack z babel-loader
do transpile mój ES6/JSX, który zostanie podzielony na serwerowych i klienckich wiązek:ES6 eksport moduł import z WebPack i babel-ładowarki
//components/CustomerView.jsx
export default class CustomerView extends React.Component {
render() {
...
}
}
//components/index.js
import CustomerView from './CustomerView.jsx'
export {CustomerView}
//client.js
var Components = require('expose?Components!./components');
//webpack.config.js (loader section)
{
test: /.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
presets: ['es2015', 'react']
}
}
Powyższe prace, ale w oparciu o przykład w sekcji Syntax
here, w którym mowa babel ją obsługuje, więc założyć, że mógł napisać coś jak poniżej, ale nie robi praca:
export CustomerView from './CustomerView.jsx'
również robi działać, jeśli klasa isnt domyślny Expo rt klasa:
export class CustomerView extends React.Component {
render() {
...
}
}
ja nie otrzymuję żadnych błędów z WebPack, tworzy wiązki, ale kiedy go uruchomić i uzyskać Could not find a component named 'Components.CustomerView'
, więc z jakiegoś powodu, chyba że jest to domyślne eksportować seeem expose-loader
robi się tworzenia Components
globalny, czy nie dołączając do niego CustomerView
żadnych pomysłów?
winię babel's [tutorial] (https://babeljs.io/docs/learn-es2015/) lol –
@AmanuelBogale To jest oficjalna nazwa specyfikacji, podoba Ci się to lub nie. http://www.ecma-international.org/ecma-262/6.0/ "Specyfikacja językowa ECMAScript® 2015" Obydwie nazwy są poprawne, a posuwanie się do przodu w roku będzie bardziej powszechne. – loganfsmyth
Dosent matter @loganfsmyth Nie podoba mi się to imię. Po prostu powiedz ES6 lub ES7 ... Jestem zmęczony tym – amanuel2