gpt4 book ai didi

ember.js - Ember-CLI:有没有办法将(供应商)目录复制到/public/assets?

转载 作者:行者123 更新时间:2023-12-02 18:44:23 24 4
gpt4 key购买 nike

在 Ember-CLI 项目中,如果我将包含 webfonts 及其 CSS 样式表的目录添加到 public/assets 目录中,我可以将它们与 @import 'assets/之类的内容一起使用字体/常规/stylesheet.css。这工作得很好。

理想情况下,我希望将这些 Assets 保留在我的 git 存储库之外,而是将它们作为客户端依赖项bower install,但是如何在 Ember-CLI 构建中使用这些 Assets ?

文档提到了 Brocfile.js 中的 app.import(FILE),它适用于 CSS 样式表,但不适用于 WOFF 字体文件:

$ ember build
version: 0.0.28
Build failed.
Error: Path or pattern "nicefont.woff" did not match any files
at Object.multiGlob (/(PATH)/node_modules/ember-cli/node_modules/broccoli-static-compiler/node_modules/broccoli-kitchen-sink-helpers/index.js:216:13)
at /(PATH)/demo/node_modules/ember-cli/node_modules/broccoli-static-compiler/index.js:25:27
at invokeCallback (/(PATH)/node_modules/ember-cli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:228:21)
at publish (/(PATH)/node_modules/ember-cli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:176:9)
at publishFulfillment (/(PATH)/node_modules/ember-cli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:312:5)
at flush (/(PATH)/node_modules/ember-cli/node_modules/rsvp/dist/commonjs/rsvp/asap.js:41:9)

另外,我想指定一个目录,但 app.import() 拒绝。

有 Ember-CLI/Brocolli 方法可以做到这一点吗?

最佳答案

我以为我陷入了这个问题,但显然一杯茶并在 StackOverflow 上明确地表达了这个问题,让我朝着正确的方向前进......

如果您使用 Bower 安装客户端依赖项,那么在 Ember-CLI 项目中,这些依赖项将最终出现在 vendor/ 中。要使用它们(部分)而不更改它们,我们可以使用 Broccoli 的稍微尴尬的名称 broccoli-static-compiler 。首先,安装两个构建时依赖项:

npm install --save-dev broccoli-static-compiler
npm install --save-dev broccoli-merge-trees

Brocfile.js 中,在 EmberApp 导入下方添加:

var mergeTrees = require('broccoli-merge-trees');
var pickFiles = require('broccoli-static-compiler');

Brocfile.js 的底部:

// Remove this line:
// module.exports = app.toTree()

// Copy only the relevant files:
var fontOpenSans = pickFiles('vendor/font-opensans', {
srcDir: '/',
files: ['**/*.woff', '**/stylesheet.css'],
destDir: '/assets/fonts'
});

// Merge the app tree and our new font assets.
module.exports = mergeTrees([app.toTree(), fontOpenSans]);

这里我们的客户端依赖项是一个 font-opensans,它指的是包含 Open Sans webfont 副本的本地 git 存储库。

仅此而已!要使用网络字体,请从 index.html 链接到 assets/:

<link rel="stylesheet" href="assets/fonts/opensans_regular/stylesheet.css">

这是使用 ember-cli 0.0.40 和一些早期版本进行测试的。

关于ember.js - Ember-CLI:有没有办法将(供应商)目录复制到/public/assets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23871749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com