Подтвердить что ты не робот

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

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

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

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

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

"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"
},

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

4b9b3361

Ответ 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 выполнялось для браузера, но не для проверки.

"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, выполненной для проверки работы.

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

Однако, не DRY. Я бы хотел, чтобы мои команды были короткими, насколько это возможно, но ~ oh well ~.