【发布时间】:2018-09-24 12:55:54
【问题描述】:
我首先要指出我是从这里发帖的:https://github.com/ember-fastboot/ember-cli-fastboot/issues/621 到目前为止,这个问题还没有引起任何关注,所以我正在向更广泛的社区开放它。
我正在尝试使 ember-cli-slick 快速启动兼容。 它使用来自 node_modules 的 slick.js,如下所示:
included: function(app) {
this._super.included(app);
app.import("node_modules/slick-carousel/slick/slick.js");
我正在尝试让 treeforvendor 工作,但运气不佳。 我正在关注这里的文档https://www.ember-fastboot.com/docs/addon-author-guide#third-party-dependencies 但我怀疑它的目标是 bower 而不是 npm/node_modules。
treeForVendor(defaultTree) {
var browserVendorLib = new Funnel('node_modules/slick-carousel/slick/slick.js');
browserVendorLib = map(browserVendorLib, (content) => `if (typeof FastBoot === 'undefined') { ${content} }`);
return new mergeTrees([defaultTree, browserVendorLib]);
},
这会导致错误:
构建错误(broccoli-persistent-filter:Mapper)
ENOTDIR:不是目录,scandir 'projectdir/tmp/broccoli_persistent_filtermapper-input_base_path-FOInixjr.tmp/'
我也试过
treeForVendor(defaultTree) {
var map = require("broccoli-stew").map;
var Funnel = require("broccoli-funnel");
const mergeTrees = require('broccoli-merge-trees');
let tree=new Funnel('node_modules/slick-carousel/slick/', {
destDir: 'slick-carousel',
files: ['slick.js']
})
tree = map(tree, (content) => `if (typeof FastBoot === 'undefined') { ${content} }`);
return new mergeTrees([defaultTree, tree]);
},
这至少可以构建.. 但是我又回到了 Fastboot 错误
ReferenceError: jQuery 未定义在 projectfolder/tmp/broccoli_merge_trees-output_path-8cGO0zCl.tmp/assets/node_modules/slick-carousel/slick/slick.js:25:1
我创建了一个干净且空的 Ember 插件项目,其中仅包含 import 和 treeforvendor 函数来演示该问题 https://github.com/MrChriZ/ember-slicker
【问题讨论】:
-
slick.js 需要 jQuery,所以你可能只是在 fastboot 中禁用了你的插件。
标签: ember.js