2014-05-16 15 views
29

Sposób używam pakiety, które nie są dostępne po wyjęciu z pudełka w KMP, w tej chwili jest tak:Przegląd i altana. Canonical podejście

package.json posiada:

"napa": { 
    "angular": "angular/bower-angular", 
    "angular-animate": "angular/bower-angular-animate", 
    "d3": "mbostock/d3", 
    "ui-router":"angular-ui/ui-router", 
    "bootstrap":"twbs/bootstrap" 
    }, 
    "scripts": { 
    "install": "node node_modules/napa/bin/napa" 

i który instaluje pliki w katalogu node_modules i używam ich natywnie jak ten

require('angular/angular') 
require('ui-router') 
... etc 

to działa, ale myślałem, czy to możliwe, aby korzystać z pakietami z altana (na altanie określonego folderu) i wykorzystać je jako moduły natywnie węzłów? Czy można zmodyfikować rozdzielczość modułu węzła i zmusić go do szukania modułów nie tylko w katalogu node_modules, ale także w katalogu altów? A może przy użyciu npm link czy cokolwiek innego?

Czy istnieje jakaś konwencja do korzystania z funkcji przeglądania z altaną?

+0

Dlaczego używałbyś kanciastości na serwerze? Czy te wymagania pojawiają się w przeglądarce? –

+0

Bardzo insighfull –

Odpowiedz

23

Można użyć browserify-shim i skonfigurować moduły Bower zainstalowane w Twoim package.json tak:

"browser": { 
    "angular": "./bower_components/angular/angular.js", 
    "angular-resource": "./bower_components/angular-resource/angular-resource.js" 
}, 
"browserify-shim": { 
    "angular": { 
    "exports": "angular" 
    }, 
    "angular-resource": { 
    "depends": ["./bower_components/angular/angular.js:angular"] 
    } 
}, 

Następnie kod może require ich po krótkiej nazwy, jakby były regularne moduły NPM.

Here is the spec for the "browser" package.json property.

+2

wydaje się po prostu ustawianie wszystkiego w sekcji "przeglądarka" działa (nawet bez instalowania browserify-shim) ... Teraz pytanie: czy przeglądarka obsługuje symbole wieloznaczne w dziale przeglądarki? możemy zrobić: "przeglądarka": {"*": "./ bower_components /"}. Lub każdy pojedynczy pakiet musi być wyraźnie wymieniony na liście? – Agzam

+0

Obsługa znaków wieloznacznych wydaje mi się mało prawdopodobna, ale spróbuj. –

41

Można spróbować zainstalować poprzez debowerify

package.json może wtedy wyglądać następująco:

{ 
    "name": "browserify-begin", 
    "version": "0.0.0", 
    "dependencies": { 
    }, 
    "browserify": { 
    "transform": [ 
     "debowerify" 
    ] 
    }, 
    "devDependencies": { 
    "browserify": "^4.1.5", 
    "debowerify": "^0.7.1", 
    "grunt": "^0.4.5" 
    } 
} 

Biorąc kątowa jest instalowany z

bower install angular 

Następnie w pliku js będzie być następujący:

require("angular"); 
+9

Dobry Boże, po prostu działa. –

Powiązane problemy