현재 ember-cli 프로젝트에서 Twitter Bootstrap을 제대로 설치하려고합니다. 나는 bower로 부트 스트랩을 설치했습니다.
bower install --save bootstrap
이제 라이브러리는 / vendor / bootstrap / dist / (css | js | fonts)에 다운로드
됩니다. 여기에 언급 된 내용을 시도해 보았습니다. http://ember-cli.com/#managing-dependencies
경로 및 CSS 파일 이름을 대체했지만 Brocfile.js 파일 에 관한 오류 . brocfile 형식이 예제에 비해 너무 많이 변경되었다고 생각합니다.
또한 / app / styles / 디렉토리에서 스타일 시트를 이동 한 후 /app/styles/app.css 파일 로 @import를 시도했습니다 .
@import url('/assets/bootstrap.css');
@import url('/assets/bootstrap-theme.css');
그러나 그것은 작동하지 않았습니다. 파일은 실제 개발 서버에서 볼 수 있습니다.http://localhost:4200/assets/bootstrap.css
누군가 여기에 뼈를 던질 수 있습니까?
고마워
편집하다 :
ember -v
ember-cli 0.0.23
brocfile.js
/* global require, module */
var uglifyJavaScript = require('broccoli-uglify-js');
var replace = require('broccoli-replace');
var compileES6 = require('broccoli-es6-concatenator');
var validateES6 = require('broccoli-es6-import-validate');
var pickFiles = require('broccoli-static-compiler');
var mergeTrees = require('broccoli-merge-trees');
var env = require('broccoli-env').getEnv();
var getEnvJSON = require('./config/environment');
var p = require('ember-cli/lib/preprocessors');
var preprocessCss = p.preprocessCss;
var preprocessTemplates = p.preprocessTemplates;
var preprocessJs = p.preprocessJs;
module.exports = function (broccoli) {
var prefix = 'caisse';
var rootURL = '/';
// index.html
var indexHTML = pickFiles('app', {
srcDir: '/',
files: ['index.html'],
destDir: '/'
});
indexHTML = replace(indexHTML, {
files: ['index.html'],
patterns: [{ match: /\{\{ENV\}\}/g, replacement: getEnvJSON.bind(null, env)}]
});
// sourceTrees, appAndDependencies for CSS and JavaScript
var app = pickFiles('app', {
srcDir: '/',
destDir: prefix
});
app = preprocessTemplates(app);
var config = pickFiles('config', { // Don't pick anything, just watch config folder
srcDir: '/',
files: [],
destDir: '/'
});
var sourceTrees = [app, config, 'vendor'].concat(broccoli.bowerTrees());
var appAndDependencies = mergeTrees(sourceTrees, { overwrite: true });
// JavaScript
var legacyFilesToAppend = [
'jquery.js',
'handlebars.js',
'ember.js',
'ic-ajax/dist/named-amd/main.js',
'ember-data.js',
'ember-resolver.js',
'ember-shim.js',
'bootstrap/dist/js/bootstrap.js'
];
var applicationJs = preprocessJs(appAndDependencies, '/', prefix);
applicationJs = compileES6(applicationJs, {
loaderFile: 'loader/loader.js',
ignoredModules: [
'ember/resolver',
'ic-ajax'
],
inputFiles: [
prefix + '/**/*.js'
],
legacyFilesToAppend: legacyFilesToAppend,
wrapInEval: env !== 'production',
outputFile: '/assets/app.js'
});
if (env === 'production') {
applicationJs = uglifyJavaScript(applicationJs, {
mangle: false,
compress: false
});
}
// Styles
var styles = preprocessCss(appAndDependencies, prefix + '/styles', '/assets');
// Bootstrap Style integration
var bootstrap = pickFiles('vendor', {
srcDir: '/bootstrap/dist/css',
files: [
'bootstrap.css',
'bootstrap-theme.css'
],
destDir: '/assets/'
});
//var bootstrap = preprocessCss(appAndDependencies, '/vendor/bootstrap/dist/css', '/assets');
// Ouput
var outputTrees = [
indexHTML,
applicationJs,
'public',
styles,
bootstrap
];
// Testing
if (env !== 'production') {
var tests = pickFiles('tests', {
srcDir: '/',
destDir: prefix + '/tests'
});
var testsIndexHTML = pickFiles('tests', {
srcDir: '/',
files: ['index.html'],
destDir: '/tests'
});
var qunitStyles = pickFiles('vendor', {
srcDir: '/qunit/qunit',
files: ['qunit.css'],
destDir: '/assets/'
});
testsIndexHTML = replace(testsIndexHTML, {
files: ['tests/index.html'],
patterns: [{ match: /\{\{ENV\}\}/g, replacement: getEnvJSON.bind(null, env)}]
});
tests = preprocessTemplates(tests);
sourceTrees = [tests, 'vendor'].concat(broccoli.bowerTrees());
appAndDependencies = mergeTrees(sourceTrees, { overwrite: true });
var testsJs = preprocessJs(appAndDependencies, '/', prefix);
var validatedJs = validateES6(mergeTrees([app, tests]), {
whitelist: {
'ember/resolver': ['default'],
'ember-qunit': [
'globalize',
'moduleFor',
'moduleForComponent',
'moduleForModel',
'test',
'setResolver'
]
}
});
var legacyTestFiles = [
'qunit/qunit/qunit.js',
'qunit-shim.js',
'ember-qunit/dist/named-amd/main.js'
];
legacyFilesToAppend = legacyFilesToAppend.concat(legacyTestFiles);
testsJs = compileES6(testsJs, {
// Temporary workaround for
// https://github.com/joliss/broccoli-es6-concatenator/issues/9
loaderFile: '_loader.js',
ignoredModules: [
'ember/resolver',
'ember-qunit'
],
inputFiles: [
prefix + '/**/*.js'
],
legacyFilesToAppend: legacyFilesToAppend,
wrapInEval: true,
outputFile: '/assets/tests.js'
});
var testsTrees = [qunitStyles, testsIndexHTML, validatedJs, testsJs];
outputTrees = outputTrees.concat(testsTrees);
}
return mergeTrees(outputTrees, { overwrite: true });
};
답변
부트 스트랩 자산을 자동으로 가져 오는 ember-bootstrap 을 확인하는 것이 좋습니다.
ember install ember-bootstrap
또한 앱에 기본 ember 구성 요소 모음을 추가하여 ember에서 부트 스트랩 기능을 훨씬 쉽게 사용할 수 있습니다. 내가 그것의 저자이기 때문에 약간 편견이 있지만 그것을 확인하십시오! 😉
답변
세게 때리다:
bower install --save bootstrap
Brocfile.js :
app.import('vendor/bootstrap/dist/js/bootstrap.js');
app.import('vendor/bootstrap/dist/css/bootstrap.css');
기본적으로 링크 된 app.js에 JS가 추가되고 assets/vendor.css
5 월 14 일부터 기본적으로 추가되는에 CSS가 추가됩니다.
참고 : http://www.ember-cli.com/#managing-dependencies
글꼴 및 기타 자산에 대한 @Joe의 질문에 대한 응답으로 글꼴 작업에 권장되는 app.import () 메서드를 가져올 수 없었습니다. 대신 병합 트리 및 정적 컴파일러 접근 방식을 선택했습니다.
var mergeTrees = require('broccoli-merge-trees');
var pickFiles = require('broccoli-static-compiler');
var extraAssets = pickFiles('vendor/bootstrap/dist/fonts',{
srcDir: '/',
files: ['**/*'],
destDir: '/fonts'
});
module.exports = mergeTrees([app.toTree(), extraAssets]);
답변
세게 때리다:
bower install --save bootstrap
Brocfile.js :
/* global require, module */
...
app.import('bower_components/bootstrap/dist/css/bootstrap.css');
app.import('bower_components/bootstrap/dist/css/bootstrap.css.map', {
destDir: 'assets'
});
app.import('bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot', {
destDir: 'fonts'
});
app.import('bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf', {
destDir: 'fonts'
});
app.import('bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg', {
destDir: 'fonts'
});
app.import('bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff', {
destDir: 'fonts'
});
app.import('bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2', {
destDir: 'fonts'
});
app.import('bower_components/bootstrap/dist/js/bootstrap.js');
module.exports = app.toTree();
답변
업데이트 3/30/15
plus ça change … 지금은 ember-cli-bootstrap-sassy를 사용 합니다. 부트 스트랩의 변수를 사용자 정의 할 수있게하면서 최소한의 찌그러짐을 가져 오는 것 같습니다.
업데이트 1/22/15
내가 원래 언급 한 lib 대신 위의 Johnny의 솔루션을 사용해야 할 것입니다. 또한 ember-cli-bootstrap-sass 를 좋아합니다. 프로젝트에서 직접 Bootstrap의 변수를 사용자 지정할 수 있기 때문입니다.
원본 2014 년 7 월 11 일
애드온 (0.35 이상)을 지원하는 ember-cli 버전을 사용하고 있다면 이제 ember-cli-bootstrap 패키지를 사용할 수 있습니다 . 앱의 루트에서
npm install --save-dev ember-cli-bootstrap
그게 다야!
참고 : @poweratom이 지적했듯이 bootstrap-for-ember를
ember-cli-bootstrap
포함하도록 선택하는 다른 사람의 라이브러리입니다 . 따라서이 lib는 공식 부트 스트랩 버전과 동기화되지 않을 수 있습니다. 하지만 새 프로젝트에서 프로토 타이핑을 빠르게 할 수있는 좋은 방법입니다!
답변
$> bower install --save bootstrap
그 후 당신에 두 줄에 다음을 추가 엠버 – CLI-builds.js (또는 Brocfile.js 당신이 Ember.js의 이전 버전을 사용하는 경우) :
app.import(app.bowerDirectory + '/bootstrap/dist/js/bootstrap.js');
app.import(app.bowerDirectory + '/bootstrap/dist/css/bootstrap.css');
그리고 voilà, 갈 준비!
2015 년 8 월 18 일 업데이트 : Ember.js 1.13에 도입 된 새로운 체계에 맞게 조정 됨
답변
이것이 Ember-cli를 뒷받침하는 Broccoli로 공급 업체 CSS 파일을 패키징하는 방법입니다.
var vendorCss = concat('vendor', {
inputFiles: [
'pikaday/css/pikaday.css'
, 'nvd3/nv.d3.css'
, 'semantic-ui/build/packaged/css/semantic.css'
]
, outputFile: '/assets/css/vendor.css'
});
어디에 vendor
내 바우어 패키지가 사는 곳 폴더입니다. 그리고 assets
내 CSS가 살기를 기대하는 곳입니다. Ember-cli 방식 인 Bower를 사용하여 Bootstrap을 설치했다고 가정합니다.
그런 다음 index.html에서 단순히 해당 vendor.css
파일을 참조하고 있습니다.
<link href="/assets/css/vendor.css" rel="stylesheet" type="text/css" media="all">
건배.
답변
SASS를 사용하는 경우 (아마를 통해 ember-cli-sass
) bower_components
이 조회 경로에 자동으로 추가됩니다. 이것은 Bower를 사용하고 Brocfile / ember-cli-build 파일을 모두 피할 수 있음을 의미합니다.
Bower를 사용하여 공식 SASS 버전의 Bootstrap을 설치합니다.
bower install --save bootstrap-sass
그런 다음 lib를 app.scss
. 이것에 대한 좋은 점은 부트 스트랩을 가져 오기 전에 변수를 사용자 정의 할 수 있다는 것입니다.
$brand-primary: 'purple';
@import 'bower_components/bootstrap-sass/assets/stylesheets/bootstrap';