2015-11-19 2 views
2

Я пытаюсь изучить браузер для управления своим javascript. Моя первая простая задача создать react.js файл, который будет создан с помощью глотка + browserifyИспользование браузера для обновления React components

var browserify = require('gulp-browserify'); 

gulp.task('browserify-react', function() { 
    return gulp.src('js/react/react.js') 
    .pipe(browserify()) 
    .pipe(rename('react-generated.js')) 
    .pipe(gulp.dest('./dist')); 
}); 

В JS/реагируют/Я создал файл react.js, который является всего лишь две команды требуют:

var React = require('react'); 
var ReactDOM = require('react-dom'); 

Я ожидаю, что новый файл response-generated.js будет содержать модули реагирования и реагирования.

Файл будет создан, но когда я пытаюсь использовать этот реагирующие-generated.js в моем проекте я получаю две ошибки

ReferenceError: React is not defined 
ReferenceError: ReactDOM is not defined 

Но если я использую реагировать JavaScript с Facebook, так что все в порядке, нет ошибки

<script src="https://fb.me/react-0.14.0.min.js"></script> 
<script src="https://fb.me/react-dom-0.14.0.min.js"></script> 

Вопросы. Что мне не хватает, когда я создаю реагирующие компоненты с помощью gulp-браузера?

+0

Да, я сделал это. Генерируется файл response-generated.js. Но почему я получаю ошибку? – podeig

+0

Используете ли вы браузер для пакетного реагирования и реагирования? Это не сделает их доступными вне этого пакета. Вам необходимо упаковать все ваше приложение – Tyrsius

+0

Спасибо, Tyrsius. Понимаю. Но что я могу использовать в глотке только для того, чтобы получить реагирующие компоненты, которые установлены npm? Просто упаковать их в один файл и свести их к минимуму? – podeig

ответ

2

Ваш файл/модуль вашего реактора.js не подвергает переменным React и ReactDOM экземпляру. В узле вы публикуете эти методы, изменяя объект module.exports следующим образом:

module.exports = { 
    React: React, 
    ReactDOM: ReactDOM 
} 
+0

Ниже приведено следующее: http://stackoverflow.com/questions/26672071/browserify-create-bundle-with-external-module – jbsmoove

+0

Если это небольшой взлом за пределами браузера, то он не отвечает на вопрос. – iroel

+0

Browserify packages node.js для использования в браузере, что позволяет использовать другие модули узлов. Метод, который я описываю, заключается в том, как вы открываете объекты для других модулей в node.js. Это не взломать. https://nodejs.org/api/modules.html – pygeek

Смежные вопросы