node.js - online - Browserify y bower. Enfoque canónico
browserify tutorial español (2)
Puede usar browserify-shim y configurar los módulos instalados en el package.json
en su package.json
siguiente manera:
"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"]
}
},
Luego, su código puede require
por su nombre corto como si hubiera módulos npm normales.
Aquí está la especificación para la propiedad package.json "browser" .
La forma en que estoy usando paquetes que no están disponibles de inmediato en npm, ahora es así:
package.json tiene:
"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"
y eso instala archivos en el directorio node_modules, y los uso de forma nativa así
require(''angular/angular'')
require(''ui-router'')
... etc
Eso funciona, pero estaba pensando si es posible usar paquetes instalados con bower (en la carpeta específica de bower) y usarlos de forma nativa como módulos de nodo. ¿Es posible modificar la resolución del módulo del nodo y forzarlo a buscar módulos no solo dentro del directorio node_modules, sino también en el directorio Bower? ¿O tal vez usando el npm link
o lo que sea?
¿Hay algún tipo de convención para usar browserify con bower?
Puedes intentar instalarlo a través de debowerify
El package.json puede verse como sigue:
{
"name": "browserify-begin",
"version": "0.0.0",
"dependencies": {
},
"browserify": {
"transform": [
"debowerify"
]
},
"devDependencies": {
"browserify": "^4.1.5",
"debowerify": "^0.7.1",
"grunt": "^0.4.5"
}
}
Dado angular se instala con
bower install angular
Luego dentro del archivo js quedará como sigue:
require("angular");