我正在尝试将简单的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 js和ember-auto-import
,但它们似乎对我没有用。我尝试过的上述方法似乎很简单,如果可以按这种方式工作,那就更好了。
PS:我可以使upper-case
在其他JS框架(例如React和Vue)中工作,所以该模块本身没有任何问题。
答案 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中导入模块时,我已经尝试过异常,但是它们似乎对我不起作用。我尝试过的上述方法似乎很简单,如果可以按这种方式工作,那就更好了。
您对此有任何错误吗?