我有一个基于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
目录。所以我想使用某种脚本机制将库移动到我的项目中。
情况:
我想拥有以下目录结构:
- 的index.html
- CSS
- 的main.css
- JS
- main.js
- 的 LIB
- JS
- 的jquery
- jquery.min.js
- CSS
- jQuery的UI
- 的jquery-ui.min.css
- 字体
- ...
有些图书馆不仅有.js
个文件,还有css和字体文件
更新
我采用基于rake脚本的方法(参见below)。但我想知道,如果基于Javascript / NodeJS有更优雅的方法
答案 0 :(得分:1)
使用.gitignore
文件会更容易吗?
答案 1 :(得分:1)
我认为如果你使用git ignore来避免bower_components和node_modules就可以了。但你需要的是.bowerrc
文件:
{
"directory": "app/libs"
}
使用该路线,您可以指定目的地文件夹。
和你的bower.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
这样的任务运行器答案 2 :(得分:0)
我提出了以下解决方案,该解决方案基于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