我已经下载了一个使用AMD
的项目。一切正常,但我想测试如何将所有已编译的文件连接到一个输出 all.js
文件中。我发现了一些关于 --out
参数的信息,并按照此处的步骤操作:https://stackoverflow.com/a/14302902/1252575
这对我不起作用,我收到错误:
The command "tsc --module AMD --out all.js "C:\TypeScriptWithRequireAMD_0.8.1\app\classes\Test.ts" "C:\TypeScriptWithRequireAMD_0.8.1\modules\require.d.ts" "C:\TypeScriptWithRequireAMD_0.8.1\app\classes\Greeter.ts" "C:\TypeScriptWithRequireAMD_0.8.1\app\AppConfig.ts" "C:\TypeScriptWithRequireAMD_0.8.1\app\AppMain.ts"" exited with code 1.
这是我的文件结构:
顺便说一句。我还有第二个问题。 --out
参数是否从 lib
目录复制内容?如果没有,如何也包含它们?
[编辑 1.]
哦,我忘了...它是我的 .csproj
文件的一部分:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptSourceMap>--module AMD</TypeScriptSourceMap>
</PropertyGroup>
<Target Name="BeforeBuild">
<Message Text="Compiling TypeScript files" />
<Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
<Exec Command="tsc $(TypeScriptSourceMap) --out all.js @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>
[编辑2.]
这是我的AppConfig.js
:
require.config({
baseUrl: '../',
paths: {
'jquery': 'lib/jquery-1.7.2',
'underscore': 'lib/underscore',
'backbone': 'lib/backbone',
'console': 'lib/console',
'greeter': 'app/classes/Greeter',
'test': 'app/classes/Test'
},
shim: {
jquery: {
exports: '$'
},
underscore: {
exports: '_'
},
backbone: {
deps: [
"underscore",
"jquery"
],
exports: "Backbone"
},
console: {
exports: "console"
},
greeter: {
deps: [
"test"
]
},
test: {
deps: [
"greeter"
]
}
}
});
require([
'jquery',
'underscore',
'backbone',
'console',
'app/AppMain',
'app/classes/Greeter',
'app/classes/Test'
], function ($, _, Backbone, console, main, greeter, test) {
var appMain = new main.AppMain();
appMain.run();
});
最佳答案
根据定义,AMD 脚本由 AMD 加载器异步加载。为了将它们全部放入一个文件中,您需要对每个文件的依赖关系进行一些分析,以便它们以正确的顺序插入。这不是 --out
所做的事情。您需要调查类似 RequireJS optimizer 的内容相反。
关于javascript - TypeScript + AMD + out 参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14505126/