为什么AMD的相对导入在requirejs中不起作用?

道格

因此,如果您有一个文件夹:

- demo/js/foo/foo.js
- demo/js/foo/bar/a.js
- demo/js/foo/bar/b.js

然后将AMD模块定义为:

foo.js: define(['./bar/a.js', './bar/b.js'], function(a, b) { console.log(a, b); });
a.js: define([], function() { return {a:'a'}; });
b.js: define([], function() { return {b:'b'}; });

然后,如果您像这样导入模块:

require(['./foo/foo'], function() { ... }

给出:

"NetworkError: 404 Not Found - http://localhost:3005/demo/foo/bar/a.js"
"NetworkError: 404 Not Found - http://localhost:3005/demo/foo/bar/b.js"
Error: Script error for: foo/bar/a.js http://requirejs.org/docs/errors.html#scripterror
Error: Script error for: foo/bar/b.js http://requirejs.org/docs/errors.html#scripterror

为什么不起作用?

我在requirejs论坛上读了一些晦涩的帖子,说这是“按预期工作”,因为“导入是名称,它们不是相对路径”。...并且您应该使用“地图”功能解决此问题。

...

正确的!好吧,我不会介绍这种行为有多明显,或者像https://groups.google.com/forum/#!searchin/requirejs/relative/requirejs/Zmh7EV5fR2M/4OM-ss5g3DEJ这样的线程是多么无用的;让我们直接说清楚。

如何你应该做这项工作?

显然,如果您使用Bower导入任意模块,并且该模块位于js / lib / obscure.js / dist / obscure.js中,则需要设置配置:

require.config({
    paths: {
        obscure: 'lib/obscure.js/dist/obscure'
    }
});

...但这似乎意味着所有“ amd可导入”模块最终都是其中一个包含所有模块的简单文件的大量合并

使用baseUrl并不是解决方案,因为如上所述,您希望将javascript的多个孤立的“岛”作为模块安装,其中1)需要互相引用,但2)还需要能够引用自己的内部,相对模块。

似乎异常怪异。

再次,如何你应该做的不平凡的情况下,这个工作?

编辑:

当然,您说的是,您做错了,只是没有告诉我们您正在做的所有事情。好吧,自己看看。github上的错误副本现在在这里:https : //github.com/shadowmint/requirejs-example

路易

相对进口确实有效。

代码的问题是您列出了模块名称以及.js扩展名。您永远不要指定带有.js扩展名的模块名称如果您确实进行了扩展,则实际上是在告诉RequireJS“我已经知道我想要的模块在我给您的路径的末尾;不要与该路径混淆”,因此您的RequireJS配置不会影响放置在依赖项中的路径的解析方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么相对导入在Python 3中不起作用?

为什么导入在本机反应中不起作用?

为什么 python 导入在 VS 代码中不起作用?

Python包中的相对导入似乎不起作用

Python 3中的相对导入不起作用

为什么top属性与位置相对不起作用?

python中的绝对导入不起作用,相对导入起作用

WPF - 我的相对路径在我的 XAML 界面中不起作用,为什么?

为什么相对路径在Ruby中不起作用要求

为什么相对图像路径在我的React应用程序中不起作用?

为什么更新全局变量在导入函数中定义的函数中不起作用

为什么“ for”在“ go”中不起作用?

在PHP中为什么不起作用

为什么“setOnClickListener (this)”在“for in”中不起作用?

为什么外部导入对烧瓶不起作用?

为什么eval()对于导入的函数不起作用?

为什么我的Python PIL导入不起作用?

为什么我的html导入标签不起作用?

为什么这个 ReactJS 导入结构不起作用?

为什么导入在这里不起作用?

为什么导入pygame_textinput不起作用?

动态模块导入在python中不起作用-为什么不呢?

为什么将cntk作为C导入在Google Colab中不起作用

为什么它不起作用从MainActivity接收的SMSReceived中的导入功能?

可导入模块的Python相对导入不起作用

绝对导入不起作用,但相对导入可以

为什么不起作用?

为什么从 C# 运行时 python 中的相对路径不起作用,但在 C# 之外使用相同的解释器时却起作用?

TextView在相对布局中不起作用