Aurelia 少支持
Aurelia Less Support
使用 Aurelia 时,我看到 CSS 以下内容。
import 'bootstrap/css/bootstrap.css!';
我的问题是,您可以将其配置为支持更少的文件吗?或者我们是否需要单独 运行 预处理器,首先将我们的 less 文件转换为 css 文件?
提前致谢。
我认为你的问题很宽泛,答案取决于你选择的解决方案。
get started page of Aerelia shows you how to integrate Bootstrap using jspm. Some source 1, 2 建议在 github 上分叉 Bootstrap 存储库,并使用这个定制的分叉而不是带有 jspm 的原始分叉。在项目的 package.json
文件中,将 Bootstrap 替换为您自己在 jspm 依赖项中的分支,或 运行:
jspm install github:{username}/bootstrap@master
从长远来看,我预计上述内容会给您带来麻烦,无法让您的叉子保持最新状态。此外,您还必须编译 Bootstrap(本地)并将每次更改都推送到 github。
或者您确实可以下载 Bootstrap 并将 Less 编译任务添加到项目的 gulp 构建任务中。正如@matthew-james-davis 在评论中已经建议的那样,您可以使用 来了解如何执行此操作。
我建议使用bower本地安装Bootstrap:
bower install bootstrap
以上将在bower_components/bootstrap
文件夹中安装bootstrap。不要直接修改这些文件。创建一个 less/project.less
:
@import "bootstrap";
// your custom code here
请注意,编译 Bootstrap 也需要自动前缀 css 处理器。另见:http://bassjobsen.weblogs.fm/compile-bootstrap-less-v2-autoprefix-plugin/
所以你 gulp 构建任务应该如下所示:
var LessPluginCleanCSS = require('less-plugin-clean-css'),
LessPluginAutoPrefix = require('less-plugin-autoprefix'),
cleancss = new LessPluginCleanCSS({ advanced: true }),
autoprefix= new LessPluginAutoPrefix({ browsers: ["Android 2.3,Android >= 4,Chrome >= 20,Firefox >= 24,Explorer >= 8,iOS >= 6,Opera >= 12,Safari >= 6"] });
gulp.task('build-less', function() {
gulp.src('less/project.less')
.pipe(sourcemaps.init())
.pipe(less({
plugins: [autoprefix, cleancss],
paths: [ path.join(__dirname, 'bower_components/bootstrap/less/') ]
}))
.pipe(sourcemaps.write(paths.sourceMapRelativePath))
.pipe(gulp.dest('css/'))
});
上面的任务应该编译 css/project.css
你可以在你的项目 index.html
中引用这个文件:
<link rel="stylesheet" type="text/css" href="css/project.css">
您还必须加载 Bootstrap Javascripts 插件。这些插件依赖于 jQuery。 Link bootstrap.min.js
来自您的 bower_component 文件夹。
使用 Aurelia 时,我看到 CSS 以下内容。
import 'bootstrap/css/bootstrap.css!';
我的问题是,您可以将其配置为支持更少的文件吗?或者我们是否需要单独 运行 预处理器,首先将我们的 less 文件转换为 css 文件?
提前致谢。
我认为你的问题很宽泛,答案取决于你选择的解决方案。
get started page of Aerelia shows you how to integrate Bootstrap using jspm. Some source 1, 2 建议在 github 上分叉 Bootstrap 存储库,并使用这个定制的分叉而不是带有 jspm 的原始分叉。在项目的 package.json
文件中,将 Bootstrap 替换为您自己在 jspm 依赖项中的分支,或 运行:
jspm install github:{username}/bootstrap@master
从长远来看,我预计上述内容会给您带来麻烦,无法让您的叉子保持最新状态。此外,您还必须编译 Bootstrap(本地)并将每次更改都推送到 github。
或者您确实可以下载 Bootstrap 并将 Less 编译任务添加到项目的 gulp 构建任务中。正如@matthew-james-davis 在评论中已经建议的那样,您可以使用
我建议使用bower本地安装Bootstrap:
bower install bootstrap
以上将在bower_components/bootstrap
文件夹中安装bootstrap。不要直接修改这些文件。创建一个 less/project.less
:
@import "bootstrap";
// your custom code here
请注意,编译 Bootstrap 也需要自动前缀 css 处理器。另见:http://bassjobsen.weblogs.fm/compile-bootstrap-less-v2-autoprefix-plugin/
所以你 gulp 构建任务应该如下所示:
var LessPluginCleanCSS = require('less-plugin-clean-css'),
LessPluginAutoPrefix = require('less-plugin-autoprefix'),
cleancss = new LessPluginCleanCSS({ advanced: true }),
autoprefix= new LessPluginAutoPrefix({ browsers: ["Android 2.3,Android >= 4,Chrome >= 20,Firefox >= 24,Explorer >= 8,iOS >= 6,Opera >= 12,Safari >= 6"] });
gulp.task('build-less', function() {
gulp.src('less/project.less')
.pipe(sourcemaps.init())
.pipe(less({
plugins: [autoprefix, cleancss],
paths: [ path.join(__dirname, 'bower_components/bootstrap/less/') ]
}))
.pipe(sourcemaps.write(paths.sourceMapRelativePath))
.pipe(gulp.dest('css/'))
});
上面的任务应该编译 css/project.css
你可以在你的项目 index.html
中引用这个文件:
<link rel="stylesheet" type="text/css" href="css/project.css">
您还必须加载 Bootstrap Javascripts 插件。这些插件依赖于 jQuery。 Link bootstrap.min.js
来自您的 bower_component 文件夹。