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

import node js module in ember js framework

我正在尝试将一个简单的节点 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() 它可以工作,但我希望能够导入此类节点模块。我怎样才能做到这一点?

我已经尝试了 ember-auto-import,但它们似乎对我不起作用。上面的方法我试了下,貌似简单,如果能这样就好了。

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

如果你安装 ember-auto-import,你将能够使用任何 npm 包,就像特定 npm 包的文档所说的那样使用它(前提是特定的 npm 包在构建时正确配置).

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

这将很快成为默认设置(建议使用 app.import)

ember-auto-import 比 app.import 更推荐的原因是因为 JS 可以存在约 5 种不同的模块格式,而你需要 在使用 app.import 时担心那些。 ember-自动导入,由 webpack 提供支持,将所有这些都从你身上抽象出来。

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

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

编辑

I have already tried exception while importing module in ember js and ember-auto-import, but they don't seem to work for me. The above method I tried seems to be simple and would be nice if it can work this way.

你有没有遇到任何错误?