2015-01-26 10 views
12

Ich verwende browserify und watchify und möchte require() andere Dateien als die Standarderweiterungen .js und .json ohne die Erweiterung Angabe, zum Beispiel:erfordern jsx Dateien ohne Erweiterung Angabe

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

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

I wie angegeben haben --extension=EXTENSION versucht, in der browserify Dokumentation:

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

Allerdings sehe ich keine Änderung. Ist das möglich? Was wäre der richtige Weg?

Antwort

15

bearbeiten (27. April 2015): Ich habe gerade bemerkt, dass in der Frage, die ich für extension ein unzulässiges Argument hatte, etwa so:

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

Es sollte die . (Punkt sein (man beachte) in --extension=.jsx):

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

Original-Antwort:

Hinzufügen in browserify Option zu package.json tat es für browserifizieren aber nicht für 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 } ] ] 
} 

Fügen Sie in der extension Option für den watch Befehl gemacht watchify Arbeit.

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

Allerdings nicht trocken. Ich möchte meine Befehle so kurz wie möglich halten, aber ~ oh well ~.

+4

Für mich funktioniert browserify nur, wenn ich die Erweiterung mit '--extension = .jsx'' – Amida

+1

selbe wie @amida. Die Option extensions scheint komplett über package.json oder node api unterbrochen zu sein – 4m1r

Verwandte Themen