2014-12-03 2 views
0

Наша кодовая база будет постепенно перемещаться в рамки React, используя невероятный JSX Transformer.RequireJS - сделать плагин загрузчиком по умолчанию

JSX Transformer является идемпотентным для обычных файлов Javascript и переводит JSX-диалект в Javascript. Таким образом, я бы хотел не писать «jsx!» перед каждой отдельной зависимостью - я бы хотел, чтобы JSX был загрузчиком по умолчанию для RequireJS.

Возможно ли это в RequireJS?

+0

В качестве альтернативы предварительно скомпилируйте свои модули с помощью инструмента командной строки jsx (я не знаю require.js, но это похоже на простейшее решение). – FakeRainBrigand

+1

Я работал над этой проблемой некоторое время, когда я работаю, и не смог найти простой способ сделать это, все еще пожиная плоды инструментального времени требуемого времени RequireJS. Мы рассматриваем возможность перехода на систему сборки на основе webpack. –

ответ

1

Вы можете легко скомпилировать все ваши файлы React с помощью grunt + browsify + reactify. Вот основные хрюкать конфигурации, чтобы сделать это:

module.exports = function(grunt) { 'use strict'; 

    // Project configuration. 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    // Task configuration goes here. 
    paths: {}, 
    browserify: { 
     options: { 
     transform: ['reactify'], 
     }, 
     dev: { 
     src: '<%= paths.src_js %>/app/app.jsx', 
     dest: '<%= paths.build_js %>/app.js', 
     options: { debug: true } 
     }, 
     prod: { 
     src: '<%= browserify.dev.src %>', 
     dest: '<%= paths.build_js %>/app.min.js', 
     options: { debug: false }, 
     } 
    }, 
    watch: { 
     options: { livereload: true }, 
     browserify: { 
     files: ['<%= paths.src_js %>/app/**/*'], 
     tasks: ['browserify:dev'], 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.loadNpmTasks('grunt-browserify'); 

    grunt.registerTask('dev', ['browserify:dev']); 
    grunt.registerTask('prod', ['browserify:prod']); 
}; 

Вы запускаете его grunt dev или grunt prod.

+0

Это решение, которое мы использовали в конечном итоге - для сборки производства. Выполнение этого для ежедневной работы по разработке несколько громоздко - ваш интерфейс не будет обновляться, если задача просмотра не запущена. Иногда watch + компиляция несколько медленная и не завершает компиляцию к моменту перезагрузки страницы. –

+0

Я использую его для разработки и производства. Часы с ручным вокалом теперь занимают около 1.5 секунд и загружаются автозагрузки браузера, когда сборка выполняется с помощью плагина с загрузкой. Я ударил некоторые проблемы, чтобы быстро сделать грубые часы и сделать несколько изолированных задач для просмотра, чтобы собрать только необходимые файлы, сделал трюк. – daniula

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