Требовать файлы jsx без указания расширения

Я использую browserify и watchify и хочу require() файлы с расширениями по умолчанию .js и .json без указания расширения, например:

// Not ideal (tedious)
var Carousel = require('./components/Carousel/Carousel.jsx')

// Ideal
var Carousel = require('./components/Carousel/Carousel')

Я попробовал --extension=EXTENSION, как указано в документации browserify:

"scripts": {
  "build": "browserify ./src/App.js --transform [ reactify --es6 ] > dist/script.js -v -d --extension=jsx",
  "watch": "watchify ./src/App.js --transform [ reactify --es6 ] -o dist/script.js -v -d --extension=jsx"
},

Однако я не вижу никаких изменений. Это возможно? Как правильно это сделать?


person srph    schedule 26.01.2015    source источник


Ответы (1)


Изменить (27 апреля 2015 г.): я только что заметил, что в вопросе указан недопустимый аргумент для extension, например:

"watch": "watchify ./src/App.js --extension=jsx -o dist/script.js -v -d"

Должно быть (обратите внимание на . (точка) в --extension=.jsx):

"watch": "watchify ./src/App.js --extension=.jsx -o dist/script.js -v -d"

Исходный ответ:

Добавление параметра browserify к package.json сделало это для browserify, но не для watchify.

"scripts": {
  "build": "browserify ./src/App.js > dist/script.js -v -d",
  "watch": "watchify ./src/App.js -o dist/script.js -v -d"
},
"browserify": {
  "extension": [ "jsx" ],
  "transform": [ [ "reactify", { "es6": true } ] ]
}

Добавление параметра extension для команды watch заставило watchify работать.

"watch": "watchify ./src/App.js --extension=.jsx -o dist/script.js -v -d"

Однако несухой. Я бы хотел, чтобы мои команды были как можно короче, ну да ладно~.

person srph    schedule 27.01.2015
comment
Для меня браузер работает, только если я устанавливаю расширение с помощью `--extension=.jsx`` - person Kev; 01.04.2015
comment
то же, что @амида. опция extensions, похоже, полностью не работает через package.json или node api - person 4m1r; 22.07.2015