#javascript #django #reactjs #webpack #babeljs
#javascript #django #reactjs #webpack #babeljs
Вопрос:
Привет, у меня возникли проблемы с импортом компонентов из одного jsx в другой. Я использую a django framework
для обслуживания своих веб-файлов, и я загрузил все необходимые инструменты (npm, webpack, webpack-bundle-tracker, загрузчик babel, загрузчик django-webpack). Webpack
хорошо справляется со всеми отдельными файлами javascript и превращает их в пакет, в котором затем может отображаться мой локальный сервер django. Проблема заключается в том, когда я пытаюсь import a component from one jsx into another jsx
. Я не вижу никаких ошибок, но javascript, который я пытаюсь импортировать, не загружается в django.
Пример: File:index.js
var React = require('react')
var ReactDOM = require('react-dom')
var Body = require('./app.js')
ReactDOM.render(<Body message="Welcome to my website"/>, document.getElementById('app1'))
Импортируйте файл (который находится в том же каталоге, что и index.js ): File:app.js
var React = require('react')
var Body = React.createClass({
getInitialState: function() {
return {
bodymessage: this.props.message
}
},
render: function() {
return (
<h1>
{this.state.bodymessage}
</h1>
)
}
})
module.exports = Body;
Что-то не так с моей конфигурацией?
Вот мой webpack.config.js файл :
var path = require('path')
var webpack = require('webpack')
var BundleTracker = require('webpack-bundle-tracker')
module.exports = {
context: __dirname,
entry: './assets/js/index',
output: {
path: path.resolve('./assets/bundles/'),
filename: '[name]-[hash].js',
},
plugins: [
new BundleTracker({filename: './webpack-stats.json'}),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery'
})
],
module: {
loaders: [
{test: /.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['react']
}
}
]
},
resolve: {
modulesDirectories: ['node_modules', 'bower_components'],
extensions: ['', '.js', '.jsx']
}
}
Комментарии:
1. Работает ли это при использовании webpack-dev-server?
2. Нет, но я скачаю это и попробую отрендерить js с помощью этого сервера.
3. По-прежнему не работает.
Ответ №1:
Попробуйте заменить loader: 'babel-loader',
на loader: 'babel',
в вашей конфигурации webpack