Я только начал использовать React. Я прошел учебник CommentBox без каких-либо проблем. Но структура не дает большого/какого-либо руководства по организации ваших файлов JS или компиляции одного минимизированного файла JS для SPA. Я уже знаю, что инфраструктура является гибкой и не применяет стандарт, и я уверен, что эти вопросы, вероятно, абсолютно очевидны для тех, кто развивается в экосистеме Javascript.
Я полагаю, что консенсус заключается в том, чтобы использовать Browserify, а в документации есть ссылка на стартовый проект git:
https://github.com/petehunt/react-browserify-template
Это хорошее начало, но все же он компилирует только один файл JS "index.js". Я прочитал некоторые из справочников по browserify и подумал, что мне просто нужно "потребовать" другие мои файлы (и эти файлы нужно экспортировать самим).
Поэтому я изменил index.js, чтобы он выглядел так:
/** @jsx React.DOM */
var React = require('react');
var pkg = require('./package.json');
var commentBox = require('./comment-box.js');
comment-box.js - это, в общем-то, тест hello world:
/** @jsx React.DOM */
var React = require('react');
var CommentBox = React.createClass({
render: function() {
return (
<div className="commentBox">
Hello, world! I am a CommentBox.
</div>
);
}
});
React.renderComponent(
<CommentBox />,
document.getElementById('content')
);
module.exports = CommentBox;
Если я запускаю стартовую цельact-browserify-template, то, похоже, нормально генерирует browser-bundle.js:
npm start
Но если я попробую цель сборки
npm build
... ничего не происходит. Я изменил вывод npm на подробный и получаю следующее:
npm info it worked if it ends with ok
npm verb cli [ 'node', '/usr/local/bin/npm', 'build' ]
npm info using [email protected]
npm info using [email protected]
npm verb exit [ 0, true ]
npm info ok
Согласно package.json предполагалось, что он создаст файл "browser-bundle.min.js", но вместо этого я не получаю вывод. Я надеюсь, что кто-то может это прояснить.