Browserify和Bower。规范方法 [英] Browserify and bower. Canonical approach
问题描述
我使用npm中不可用的软件包的方式现在是这样的:
The way I'm using packages that not available out of the box in npm, right now is like that:
package.json具有:
package.json has:
"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"
,这会将文件安装到node_modules目录中,我像这样原生地使用它们
and that installs files into node_modules directory, and I use them natively like this
require('angular/angular')
require('ui-router')
... etc
这行得通,但是我在想是否可以使用安装了bower的软件包(进入bower专用文件夹)并将其本机用作节点模块?是否可以调整节点的模块分辨率,并迫使其不仅在node_modules目录内,而且还在Bower目录内寻找模块?还是可以使用 npm链接
或其他什么方法?
That works, but I was thinking if it's possible to use packages installed with bower (into bower specific folder) and use them natively as node modules? Is it possible to tweak node's module resolution and force it to look for modules not just inside node_modules directory, but also in bower directory as well? Or maybe using npm link
or whatever?
是否存在某种将浏览器与凉亭结合使用的约定?
Is there some sort of convention to use browserify with bower?
推荐答案
您可以使用 browserify- shim 并在 package.json
中配置Bower安装的模块,如下所示:
You can use browserify-shim and configure the bower-installed modules in your package.json
like this:
"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"]
}
},
然后,您的代码可以要求
的短名称,就好像是常规的npm模块。
Then your code can require
them by their short name as if there were regular npm modules.
这篇关于Browserify和Bower。规范方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!