Javascript 路径更新后requirejs垫片丢失
我正试图通过动态更改路径来启用标记编辑器。它最初是设置的,但如果一个标志被打开,我会尝试更改它。 当我不更改路径时,垫片工作正常,ckeditor得到解决。当我在检查标志后更改路径时,ckeditor是未定义的 config.jsJavascript 路径更新后requirejs垫片丢失,javascript,requirejs,Javascript,Requirejs,我正试图通过动态更改路径来启用标记编辑器。它最初是设置的,但如果一个标志被打开,我会尝试更改它。 当我不更改路径时,垫片工作正常,ckeditor得到解决。当我在检查标志后更改路径时,ckeditor是未定义的 config.js require.config({ paths: { ... ckeditor_core: 'lib/ckeditor/ckeditor', ... }, shim: { ... ckeditor_core: {
require.config({
paths: {
...
ckeditor_core: 'lib/ckeditor/ckeditor',
...
},
shim: {
...
ckeditor_core: {
exports: 'CKEDITOR'
},
...
}
});
if (jx && jx.activeFeatures && !jx.activeFeatures.CKEDITOR_4) {
require.config({
map : {
'*' : {
'ckeditor_core' : ''lib/ckeditor-old/ckeditor''
}
});
}
}
define({});
我曾尝试在几个不同的地方对地图进行此更改,但我总是遇到相同的问题:
TypeError: ckeditor is undefined
在我看来,在我再次设置路径后,垫片似乎已损坏。当我在控制台中时,我能够很好地解析CKEDITOR
谢谢你的帮助 这是您使用的
map
配置:
map: {
'*': {
'ckeditor_core': 'lib/ckeditor-old/ckeditor'
}
}
当此映射生效并且RequireJS遇到对模块ckeditor\u core
的请求时,它所做的第一件事是将此请求替换为对lib/ckeditor old/ckeditor
的请求。然后RequireJS检查垫片。由于lib/ckeditor old/ckeditor
没有为其定义垫片,但这是一个需要垫片的模块,因此该模块的值是未定义的
。您需要做的是为其添加一个垫片:
'lib/ckeditor-old/ckeditor': {
exports: 'CKEDITOR'
},
太好了,这对我有用。我添加了一个名为“ckeditor\u core\u old”的新路径,然后为“ckeditor\u core\u old”添加了一个垫片。