2016-11-16 84 views
0

我已经安装了JScrollPane的节点模块NPM包:灰烬CLI - 找不到模块 'jQuery的' 当导入使用烬,browserify

$npm install --save-dev jscrollpane

我也安装烬-browserify,所以我可以根据this article将npm模块导入我的余烬组件。

我导入模块插入我的组件:

import Jscrollpane from 'npm:jscrollpane';

模块被发现,但我得到这个错误:

错误:无法找到模块 'jQuery的' 从'/ Users/username/my-app/node_modules/jscrollpane/script'

我已阅读this article,建议将jQuery添加到相关的npm模块(在这种情况下为my-app/node_modules/jscrollpane/script。)。

将一个额外的jQuery副本添加到节点模块目录似乎是不可取的 - 是否有更好的方法让节点模块知道在哪里可以找到它的核心Ember cli版本?

回答

0

我认为jScrollPane试图解析通过AMD(https://github.com/aibarra988/jScrollPane/blob/master/script/jquery.jscrollpane.js#L68-L73)加载的jQuery的副本。 ember-cli使用一个自定义解析器,它没有在全局范围中暴露jQuery。 ember.js默认包含在Ember.$之下的jQuery。 的解决方案快速的想法:

  1. 写某种垫片的暴露Ember.$jquery作为JScrollPane的预期默认
  2. 找到JScrollPane的打包凉亭和内ember-cli-build.js导入(不是“最好的”,但它的工作原理)
  3. vendor目录中嵌入文件的修改版本并使用ember-cli-build.js导入它。例如app.import('vendor/js/something.jquery.js'); 如果你想这样做的“正确的方式”,我建议您请在农闲各地:https://embercommunity.slack.com/messages/-ember-cli/