2017-01-04 2 views
0

Использование Cygwin на Windows 10 (64 бит) Installed babel-cli, react и babel-preset-react на вершине Node.js, который был установлен с помощью установщика Windows (так как нет никакой поддержки Cygwin.) Я установил эти пакеты Node, используя yarn, в папку глобальных модулей.Прекомпиляция JSX для React в DJANGO-компрессора

В документации django-compressor (https://django-compressor.readthedocs.io/en/latest/reactjs/), они говорят, что установка прекомпилятор делает трюк: (. Метание ошибки при столкновении с виртуальными элементами DOM)

COMPRESS_PRECOMPILERS = (
    ('text/jsx', 'cat {infile} | babel > {outfile}'), 
) 

Однако столпотворение не признающий jsx Это очевидно, потому что я не передавая команду react. Но я не могу использовать этот пресет, потому что я установлен в глобальной папке модуля, и теперь я не могу заставить Babel найти и использовать его.

мне нужен один из этих возможных решений:

  1. Как я могу сделать столпотворение использовать предустановку глобально установленной (как я должен использовать babel --presets react таким образом, что работает)?

  2. Как использовать файл .babelrc в проекте Django?

  3. Если бы я должен был установить предустановку локально (что, похоже, мне очень не нравится), как мне заставить его жить с моим проектом Django, не создавая беспорядок из моей структуры каталога проекта?

ответ

2

Хорошо, я ударилась головой несколько раз и нашли решение:

  1. Там нет никакого способа, чтобы сделать работу с Вавилонской пресетов, установленных по всему миру. Обязательно устанавливать их локально. Все react, react-dom, babel-core, babel-loader, babel-preset-react (и, возможно, babel-preset-es2015, если требуется последний синтаксис ECMA).

  2. Невозможно разместить файл .babelrc, где будет использоваться прекомпилятор. Нет необходимости иметь раздел babel в package.json. Вместо этого, установка прекомпилятор должна пройти заводскую в командной строке как:

    COMPRESS_PRECOMPILERS = (
        ('text/jsx', 'cat {infile} | babel --presets react,es2015 > {outfile}'), 
    ) 
    
  3. Просто предположим, что в папке, где manage.py жизнь также является корневым для пакетов Nodejs. Не проверяется при развертывании и запуске из файла wsgi, но, возможно, wsgi также должен жить рядом с manage.py.

Кроме того, это выглядит как все эти файлы и папки: node_modules, package.json и yarn.lock (при установке с yarn, как я,) должны быть включены в систему управления версиями.

EDITED: Я не loger думаю node_modules должны войти в систему управления версиями.

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