我有一个Typescript项目:
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='www.example.com'">';
在我的Grunt配置中,我有一个两步任务,可以编译myproject
|
+-src (folder)
| |
| +-main.ts
| +-stringHandler.ts
| +-disposable.ts
+-out (folder)
| |
| +-...
+-Gruntfile.js
中的所有.ts
个文件,并将相应的myproject/src/
个文件生成到.js
。因此,在任务的第一步完成后,我有以下内容:
myproject/out/
该任务的第二步是generating bundle file myproject
|
+-out (folder)
|
+-main.js
+-stringHandler.js
+-disposable.js
。我为此目的使用RequireJS。
我已经安装了grunt-contrib-requirejs。处理捆绑任务的myproject.js
文件如下(仅显示文件中的相关部分):
Gruntfile.js
当Grunt到达module.exports = function(grunt) {
var config = {
pkg: grunt.file.readJSON('package.json'),
requirejs: {
compile: {
options: {
baseUrl: "out",
bundles: {
'myproject': ['main', 'stringHandler', 'disposable']
},
out: 'out/myproject.js'
}
}
}
};
grunt.initConfig(config);
grunt.loadNpmTasks('grunt-contrib-requirejs');
grunt.registerTask('default', ['compile', 'requirejs']);
};
时,在成功编译项目后,我收到以下错误:
运行&#34; requirejs:compile&#34; (requirejs)任务{[错误:错误:缺失 a&#34; name&#34;,&#34; include&#34;或&#34;模块&#34;选项 在Function.build.createConfig(C:\ Users \ myuser \ Documents \ myproject \ node_modules \ grunt-contrib-requirejs \ node_modules \ requirejs \ bin \ r.js:29567:19) ] originalError:[错误:缺少&#34;名称&#34;,&#34;包括&#34;要么 &#34;模块&#34;选项]}
我可以理解缺少参数,但当我使用requirejs
时,我会收到其他错误。我想在更通用的层面上肯定会出现问题。什么是正确的配置格式?感谢
答案 0 :(得分:0)
这假设main.ts
是您的应用程序的入口点,它包含一个require.config
部分,其中包含您的应用程序依赖项(库和填充程序)。
首先,将require.config
部分移出main.ts
并移至其自己的文件config.ts
。将应用程序引导代码保留在main.ts
。
然后确定您希望部署此优化应用程序代码的位置。我们假设它是一个名为build
的目录,它与您的src
和out
文件夹平行。
更新Gruntfile以反映此配置:
requirejs: {
compile: {
options: {
baseUrl: "out",
mainConfigFile: "out/config.js",
modules: [
{ name: "main" }
],
dir: "build",
optimize: "none" // skip compression while debugging
}
}
}
您可以在http://requirejs.org/了解有关这些配置选项的更多信息,但这里是基本概述:
baseUrl
:源代码所在的位置。mainConfigFile
:指向上面提到的配置对象。它告诉插件依赖项所在的插件。这样就无需在两个地方指定和手动更新依赖项列表。modules
:是一组应用程序引导程序。在这种情况下,列出一个main.js
。dir
:将生成优化的应用程序。请注意,您的依赖项也将在此处复制。optimize
:我将其关闭,以便您可以在./build
下轻松调试生成的应用。当你开心时删除它,插件将优化(压缩和munge)你的构建文件。