我有一个基于 HTML 的项目,我正在使用bower.json
将所有依赖项放在一起:
{
"name": "MyProject",
"version": "0.1",
"main": "index.html",
"dependencies": {
"modernizr": "2.8.3",
"classie": "1.0.1",
"jquery": "2.1.1",
"font-awesome": "4.2"
}
}
整个事情都在 git 中,我不想签入bower_components
目录。所以我想使用某种脚本机制将库移动到我的项目中。
情况:
我想要以下目录结构:
- 索引.html
- .css
- 主.css
- .js
- 主.js
- 自由
- .js
- jquery
- jquery.min.js
- jquery
- .css
- jquery-ui
- jquery-ui.min.css
- jquery-ui
- 字体
- 。
- .js
一些库不仅有
.js
文件,还有css和字体文件- 库结构中的一些库(例如字体很棒)引用文件
更新
我采用了基于耙子脚本的方法(见下文)。但我想知道,是否有基于Javascript/NodeJS的更优雅的方法。
使用.gitignore
文件会更容易吗?
我认为如果您使用 git ignore 来避免bower_components和node_modules,那没关系。 但是您需要的是.bowerrc
包含以下内容的文件:
{
"directory": "app/libs"
}
使用该路由,您可以指定目标文件夹。
和你的鲍尔.json
{
"name" : "test",
"version": "0.1",
"dependencies" : {
"jquery-ui" : "latest"
},
"install" : {
"path" : {
"css": "src/css",
"js": "src/js"
},
"sources" : {
"jquery-ui" : [
"components/jquery-ui/ui/jquery-ui.custom.js",
"components/jquery-ui/themes/start/jquery-ui.css"
]
}
}
}
或者也可以使用像Grunt或Gulp这样的任务运行程序
我想出了以下解决方案,它基于Rake脚本:
desc 'Copy the bower libs to the projects sources'
task :copy_libs do
js_lib = 'js/lib'
`rm -fr #{js_lib}`
`mkdir -p #{js_lib}`
libraries = {
js: [
'jquery/dist/jquery.min.js',
'jquery/dist/jquery.min.map',
'modernizr/modernizr.js',
'classie/classie.js'
],
css: [
'font-awesome/css/font-awesome.min.css'
],
fonts: [
'font-awesome/fonts/fontawesome-webfont.woff',
'font-awesome/fonts/fontawesome-webfont.ttf',
'font-awesome/fonts/fontawesome-webfont.svg',
]
}
bower = 'bower_components'
libraries.each do |type,libs|
`mkdir -p lib/#{type}`
libs.each do |lib|
`cp #{bower}/#{lib} lib/#{type}/`
end
end
end