您需要在 require 配置中将子模块定义为包:
require.config({
packages: [
{ name: 'packagename',
location: 'path/to/your/package/root', // default 'packagename'
main: 'scriptfileToLoad' // default 'main'
}]
... some other stuff ...
});
要加载您的模块,您只需根据要求使用您的“包名称”:
define(['jquery', 'packagename'], function($, MyPackage) {
MyPackage.useIt()
});
在你的包中你必须使用./
加载相对于子模块的文件的前缀:
define(['globalDependency', './myLocalFile'], function(Asdf, LocalFile) {
LocalFile.finallyLoaded();
});
有一个有用的快捷方式:如果您的包名称等于您的位置并且您的主文件名为“main.js”,那么您可以替换它
packages: [
{ name: 'packagename',
location: 'packagename',
main: 'main'
}]
to this:
packages: ['packagename']
据我所知,您已经尝试定义一个包,但您是否也使用了 ./ 前缀?如果没有此前缀,require 将尝试在其全局根路径中查找文件。而且没有包裹,./
将是无用的,因为相对路径与全局根路径相同。
Cheers