Browserify y bower. Enfoque canónico
La forma en que estoy usando paquetes que no están disponibles fuera de la caja en npm, ahora mismo es así:
Paquete.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 que instala archivos en el directorio node_modules, y los uso de forma nativa como este
require('angular/angular')
require('ui-router')
... etc
Eso funciona, pero estaba pensando si es posible usar paquetes instalados con bower (en una carpeta específica de bower) y usarlos de forma nativa como módulos de nodo? ¿Es posible ajustar la resolución del módulo del nodo y forzarlo a buscar módulos no solo ¿dentro del directorio node_modules, pero también en el directorio bower? O tal vez usando npm link
o lo que sea?
¿Hay algún tipo de convención para usar browserify con bower?
2 answers
Puede usar browserify-shim y configurar los módulos instalados en bower en su package.json
de la 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"]
}
},
Entonces su código puede require
ellos por su nombre corto como si hubiera módulos npm regulares.
Aquí está la especificación para el paquete "browser".propiedad json .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-16 17:53:06
Puede intentar instalar a través de debowerify
El paquete.json puede entonces 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 será como sigue:
require("angular");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-22 22:17:59