在ember js框架中导入节点js模块

时间:2019-03-11 13:31:42

标签: ember.js

我正在尝试将简单的node js模块导入Ember js。我遵循了https://guides.emberjs.com/v3.8.0/getting-started/quick-start/的快速入门,并开始了人员名单的工作。

然后,我使用npm install upper-case添加了简单的大写模块,并将app.import('node_modules/upper-case/upper-case.js');添加到ember-cli-build.js中,如https://guides.emberjs.com/release/addons-and-dependencies/managing-dependencies/中所述。

此后,我打开scientists.js并将导入添加到upper-case,如下所示:

import Route from '@ember/routing/route';
//import uc from 'upper-case';

export default Route.extend({
  model() {
    var arr = new Array();
    arr[0] = 'Marie Curie'; // uc('Marie Curie');
    arr[1] = 'Mae Jemison';
    arr[2] = 'Albert Hofmann';
    return arr;
  }
});

如果我删除评论,它将显示空白屏幕。如果我使用'Marie Curie'.toUpperCase()可以,但是我希望能够导入这样的节点模块。我该如何实现?

我已经尝试过exception while importing module in ember jsember-auto-import,但它们似乎对我没有用。我尝试过的上述方法似乎很简单,如果可以按这种方式工作,那就更好了。

PS:我可以使upper-case在其他JS框架(例如React和Vue)中工作,所以该模块本身没有任何问题。

1 个答案:

答案 0 :(得分:1)

如果您安装ember-auto-import,则可以使用任何npm软件包,例如特定npm软件包的文档说的那样使用它(前提是特定的npm软件包在构建时已正确配置)。

https://github.com/ef4/ember-auto-import

这将很快成为默认设置(建议通过使用app.import进行推荐)

在app.import上推荐使用ember-auto-import的原因是,JS可以存在约5种不同的模块格式,并且您需要在使用app.import时需要担心这些问题。由webpack提供支持的ember-auto-import可以将您的所有信息抽象化。

首先,JS内置.toUpperCase()https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase

因此您不需要那个特定模块。

编辑

  

在ember js和ember-auto-import中导入模块时,我已经尝试过异常,但是它们似乎对我不起作用。我尝试过的上述方法似乎很简单,如果可以按这种方式工作,那就更好了。

您对此有任何错误吗?