【问题标题】:Ember cli - Cannot find module 'jquery' when importing NPM package using ember-browserifyEmber cli - 使用 ember-browserify 导入 NPM 包时找不到模块“jquery”
【发布时间】:2016-11-16 09:33:41
【问题描述】:

我已经安装了 jscrollpane 节点模块:

$npm install --save-dev jscrollpane

我还安装了 ember-browserify,这样我就可以按照this article 将 npm 模块导入到我的 ember 组件中。

我将模块导入到我的组件中:

import Jscrollpane from 'npm:jscrollpane';

模块已找到,但出现此错误:

错误:无法从“/Users/username/my-app/node_modules/jscrollpane/script”中找到模块“jquery”

我已阅读this article,它建议将 jQuery 添加到相关的 npm 模块(在本例中为 my-app/node_modules/jscrollpane/script.)。

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

【问题讨论】:

    标签: ember.js npm ember-cli


    【解决方案1】:

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

    1. 编写某种 shim,将 Ember.$ 暴露给 jquery,就像 jScrollPane 默认期望的那样
    2. 找到为 bower 打包的 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/

    【讨论】:

      【解决方案2】:

      我后来发现 Ember Perfect Scrollbar 与 jScrollpane 做同样的事情,但与 Ember 完美配合。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-02
        • 1970-01-01
        • 1970-01-01
        • 2019-04-12
        • 1970-01-01
        • 2015-10-17
        • 1970-01-01
        相关资源
        最近更新 更多