【问题标题】:How to move bower dependencies into place如何将凉亭依赖项移动到位
【发布时间】:2014-11-15 14:45:10
【问题描述】:

我有一个基于 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
      • js
        • jquery
          • jquery.min.js
      • CSS
        • jquery-ui
          • jquery-ui.min.css
      • 字体
        • ...
  • 有些库不仅有.js文件,还有css和字体文件

  • 库结构中的一些库(例如字体真棒)参考文件

更新

我提出了一种基于 rake 脚本的方法(请参阅 below)。但我想知道,是否有基于 Javascript / NodeJS 的更优雅的方法

【问题讨论】:

    标签: javascript html node.js bower


    【解决方案1】:

    使用.gitignore 文件会更容易吗?

    【讨论】:

    • 我宁愿采用白名单方法,挑选出我需要的文件并将它们复制到我的项目中。我发现这种方法更干净、更易于管理
    【解决方案2】:

    我认为如果你使用 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 这样的任务运行器

    【讨论】:

      【解决方案3】:

      我想出了以下基于 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多