我正在尝试将前端依赖项移出版本控制系统。Bower.io 和 Grunt 的组合应该能够做到这一点。
然而,我还无法通过捆绑多个供应商库来解决一个问题。例如,假设我有以下目录结构,其中components目录是 Bower.io 保存依赖项的目录:
├── assets
└── components
├── bootstrap
│ ├── img
│ │ └── glyhs.gif
│ └── less
│ └── bootstrap.css
└── jquery-ui
├── css
│ └── style.css
└── images
├── next.gif
└── prev.gif
现在假设我想捆绑 jQuery 的style.css和 Bootstrap 的bootstrap.css。我将把这个捆绑的文件保存在assets/bundled.css中。
但是,在此文件中,对原始图像(../images/next.gif 和 ../img/glyhs.gif)的引用不正确。它们必须被重写才能工作(所以../images/next.gif => ../components/jquery-ui/images/next.gif)。我相信(d)这种对 URL 的重写是 Grunt 应该能够做到的。但我似乎无法使用 cssmin/less/copy tasks 让它工作。例如,以下 Grunt 设置(仅移动 1 个文件)无法工作:
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
less: {
options: {
compile: false,
relativeUrls: true
},
bootstrap: {
src: 'components/bootstrap/less/bootstrap.less',
dest: 'assets/bootstrap.css'
}
}
});
grunt.loadNpmTasks('grunt-contrib-less');
grunt.registerTask('dist-css', ['less']);
};
任何一个:
我是否错误地配置了 Grunt 或做错了什么?
或者我描述的工作流程根本不是正确的,我应该使用另一个工作流程。
谢谢!