扩展另一个模块的RequireJS模块
我正在使用一个项目,它有两个不同的文件包装在AMD中,其中一个扩展了另一个,项目是 该项目有两个文件(扩展另一个模块的RequireJS模块,requirejs,amd,Requirejs,Amd,我正在使用一个项目,它有两个不同的文件包装在AMD中,其中一个扩展了另一个,项目是 该项目有两个文件(build/bundle.js和build/formatters.js),每个文件导出jsondifffatch。当我将它们包括在我的文件中时,如: define(['jsondiffpatch', 'jsondiffpatch-formatters'], function (jsondiffpatch) { }); 格式化程序扩展不存在。如果我更改了主配置,则makejson
build/bundle.js
和build/formatters.js
),每个文件导出jsondifffatch
。当我将它们包括在我的文件中时,如:
define(['jsondiffpatch',
'jsondiffpatch-formatters'], function (jsondiffpatch) {
});
格式化程序扩展不存在。如果我更改了主配置,则makejsondiffpath
取决于以下格式化程序:
shim: {
'jsondiffpatch': {
deps: ['jsondiffpatch-formatters']
}
}
我还是不懂格式化程序。这是一个相当普遍的做法,但还没有看到克服它;我知道这很简单,我遗漏了什么?当你用像RequireJS这样的AMD加载程序加载jsondiffpatch时,格式化程序是一个不同的模块。换句话说,它的工作原理与不使用AMD加载程序加载jsondiffpatch时略有不同。下面是一个完整的示例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8"/>
<link rel="stylesheet" href="bower_components/jsondiffpatch/src/formatters/html.css" type="text/css" />
<link rel="stylesheet" href="bower_components/jsondiffpatch/src/formatters/annotated.css" type="text/css" />
</head>
<script type="text/javascript" src="bower_components/requirejs/require.js"></script>
</head>
<body>
<div id="visual"></div>
<hr/>
<div id="annotated"></div>
<script>
require.config({
baseUrl: ".",
paths: {
jsondiffpatch: "bower_components/jsondiffpatch/build/bundle",
"jsondiffpatch.formatters": "bower_components/jsondiffpatch/build/formatters"
},
enforceDefine: true
});
require(["jsondiffpatch", "jsondiffpatch.formatters"],
function (jsdp, formatters) {
//
// Code here adapted from jsondiffpatch's examples:
// https://github.com/benjamine/jsondiffpatch
//
var left = { a: 3, b: 4 };
var right = { a: 5, c: 9 };
var delta = jsdp.diff(left, right);
document.getElementById('visual').innerHTML =
formatters.html.format(delta, left);
document.getElementById('annotated').innerHTML =
formatters.annotated.format(delta, left);
});
</script>
</body>
</html>
require.config({
baseUrl:“.”,
路径:{
jsondiffpatch:“bower_组件/jsondiffpatch/build/bundle”,
“jsondifffpatch.formatters”:“bower_组件/jsondifffpatch/build/formatters”
},
强制定义:true
});
需要([“jsondiffpatch”、“jsondiffpatch.formatters”],
函数(jsdp、格式化程序){
//
//这里的代码改编自jsondiffpatch的示例:
// https://github.com/benjamine/jsondiffpatch
//
var left={a:3,b:4};
var-right={a:5,c:9};
var delta=jsdp.diff(左、右);
document.getElementById('visual').innerHTML=
formatters.html.format(delta,左);
document.getElementById('annotated').innerHTML=
格式化程序。带注释的。格式(三角形,左侧);
});
除了上面的HTML之外,您唯一需要的是使用Bower安装RequireJS和jsondiffpatch。当您使用类似RequireJS的AMD加载程序加载jsondiffpatch时,格式化程序是一个不同的模块。换句话说,它的工作原理与不使用AMD加载程序加载jsondiffpatch时略有不同。下面是一个完整的示例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8"/>
<link rel="stylesheet" href="bower_components/jsondiffpatch/src/formatters/html.css" type="text/css" />
<link rel="stylesheet" href="bower_components/jsondiffpatch/src/formatters/annotated.css" type="text/css" />
</head>
<script type="text/javascript" src="bower_components/requirejs/require.js"></script>
</head>
<body>
<div id="visual"></div>
<hr/>
<div id="annotated"></div>
<script>
require.config({
baseUrl: ".",
paths: {
jsondiffpatch: "bower_components/jsondiffpatch/build/bundle",
"jsondiffpatch.formatters": "bower_components/jsondiffpatch/build/formatters"
},
enforceDefine: true
});
require(["jsondiffpatch", "jsondiffpatch.formatters"],
function (jsdp, formatters) {
//
// Code here adapted from jsondiffpatch's examples:
// https://github.com/benjamine/jsondiffpatch
//
var left = { a: 3, b: 4 };
var right = { a: 5, c: 9 };
var delta = jsdp.diff(left, right);
document.getElementById('visual').innerHTML =
formatters.html.format(delta, left);
document.getElementById('annotated').innerHTML =
formatters.annotated.format(delta, left);
});
</script>
</body>
</html>
require.config({
baseUrl:“.”,
路径:{
jsondiffpatch:“bower_组件/jsondiffpatch/build/bundle”,
“jsondifffpatch.formatters”:“bower_组件/jsondifffpatch/build/formatters”
},
强制定义:true
});
需要([“jsondiffpatch”、“jsondiffpatch.formatters”],
函数(jsdp、格式化程序){
//
//这里的代码改编自jsondiffpatch的示例:
// https://github.com/benjamine/jsondiffpatch
//
var left={a:3,b:4};
var-right={a:5,c:9};
var delta=jsdp.diff(左、右);
document.getElementById('visual').innerHTML=
formatters.html.format(delta,左);
document.getElementById('annotated').innerHTML=
格式化程序。带注释的。格式(三角形,左侧);
});
除了上面的HTML之外,您唯一需要的是使用Bower安装RequireJS和jsondiffpatch。当您使用类似RequireJS的AMD加载程序加载jsondiffpatch时,格式化程序是一个不同的模块。换句话说,它的工作原理与不使用AMD加载程序加载jsondiffpatch时略有不同。下面是一个完整的示例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8"/>
<link rel="stylesheet" href="bower_components/jsondiffpatch/src/formatters/html.css" type="text/css" />
<link rel="stylesheet" href="bower_components/jsondiffpatch/src/formatters/annotated.css" type="text/css" />
</head>
<script type="text/javascript" src="bower_components/requirejs/require.js"></script>
</head>
<body>
<div id="visual"></div>
<hr/>
<div id="annotated"></div>
<script>
require.config({
baseUrl: ".",
paths: {
jsondiffpatch: "bower_components/jsondiffpatch/build/bundle",
"jsondiffpatch.formatters": "bower_components/jsondiffpatch/build/formatters"
},
enforceDefine: true
});
require(["jsondiffpatch", "jsondiffpatch.formatters"],
function (jsdp, formatters) {
//
// Code here adapted from jsondiffpatch's examples:
// https://github.com/benjamine/jsondiffpatch
//
var left = { a: 3, b: 4 };
var right = { a: 5, c: 9 };
var delta = jsdp.diff(left, right);
document.getElementById('visual').innerHTML =
formatters.html.format(delta, left);
document.getElementById('annotated').innerHTML =
formatters.annotated.format(delta, left);
});
</script>
</body>
</html>
require.config({
baseUrl:“.”,
路径:{
jsondiffpatch:“bower_组件/jsondiffpatch/build/bundle”,
“jsondifffpatch.formatters”:“bower_组件/jsondifffpatch/build/formatters”
},
强制定义:true
});
需要([“jsondiffpatch”、“jsondiffpatch.formatters”],
函数(jsdp、格式化程序){
//
//这里的代码改编自jsondiffpatch的示例:
// https://github.com/benjamine/jsondiffpatch
//
var left={a:3,b:4};
var-right={a:5,c:9};
var delta=jsdp.diff(左、右);
document.getElementById('visual').innerHTML=
formatters.html.format(delta,左);
document.getElementById('annotated').innerHTML=
格式化程序。带注释的。格式(三角形,左侧);
});
除了上面的HTML之外,您唯一需要的是使用Bower安装RequireJS和jsondiffpatch。当您使用类似RequireJS的AMD加载程序加载jsondiffpatch时,格式化程序是一个不同的模块。换句话说,它的工作原理与不使用AMD加载程序加载jsondiffpatch时略有不同。下面是一个完整的示例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8"/>
<link rel="stylesheet" href="bower_components/jsondiffpatch/src/formatters/html.css" type="text/css" />
<link rel="stylesheet" href="bower_components/jsondiffpatch/src/formatters/annotated.css" type="text/css" />
</head>
<script type="text/javascript" src="bower_components/requirejs/require.js"></script>
</head>
<body>
<div id="visual"></div>
<hr/>
<div id="annotated"></div>
<script>
require.config({
baseUrl: ".",
paths: {
jsondiffpatch: "bower_components/jsondiffpatch/build/bundle",
"jsondiffpatch.formatters": "bower_components/jsondiffpatch/build/formatters"
},
enforceDefine: true
});
require(["jsondiffpatch", "jsondiffpatch.formatters"],
function (jsdp, formatters) {
//
// Code here adapted from jsondiffpatch's examples:
// https://github.com/benjamine/jsondiffpatch
//
var left = { a: 3, b: 4 };
var right = { a: 5, c: 9 };
var delta = jsdp.diff(left, right);
document.getElementById('visual').innerHTML =
formatters.html.format(delta, left);
document.getElementById('annotated').innerHTML =
formatters.annotated.format(delta, left);
});
</script>
</body>
</html>
require.config({
baseUrl:“.”,
路径:{
jsondiffpatch:“bower_组件/jsondiffpatch/build/bundle”,
“jsondifffpatch.formatters”:“bower_组件/jsondifffpatch/build/formatters”
},
强制定义:true
});
需要([“jsondiffpatch”、“jsondiffpatch.formatters”],
函数(jsdp、格式化程序){
//
//这里的代码改编自jsondiffpatch的示例:
// https://github.com/benjamine/jsondiffpatch
//
var left={a:3,b:4};
var-right={a:5,c:9};
var delta=jsdp.diff(左、右);
document.getElementById('visual').innerHTML=
formatters.html.format(delta,左);
document.getElementById('annotated').innerHTML=
格式化程序。带注释的。格式(三角形,左侧);
});
除了上面的HTML之外,您唯一需要的是使用Bower安装RequireJS和jsondiffpatch。这应该可以:
shim: {
'jsondiffpatch-formatters': {
deps: ['jsondiffpatch'],
exports: 'jsondiffpatch.formatters'
},
'jsondiffpatch': {
exports: 'jsondiffpatch'
}
}
这应该起作用:
shim: {
'jsondiffpatch-formatters': {
deps: ['jsondiffpatch'],
exports: 'jsondiffpatch.formatters'
},
'jsondiffpatch': {
exports: 'jsondiffpatch'
}
}
这应该起作用:
shim: {
'jsondiffpatch-formatters': {
deps: ['jsondiffpatch'],
exports: 'jsondiffpatch.formatters'
},
'jsondiffpatch': {
exports: 'jsondiffpatch'
}
}
这应该起作用:
shim: {
'jsondiffpatch-formatters': {
deps: ['jsondiffpatch'],
exports: 'jsondiffpatch.formatters'
},
'jsondiffpatch': {
exports: 'jsondiffpatch'
}
}
我看了一下,但我觉得这些不像AMD文件。另外,您的代码不应该是:define(['jsondifffpatch','jsondifffpatch formatters',],function(jsondifffpatch,form)