首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用RequireJS生成束的问题

用RequireJS生成束的问题
EN

Stack Overflow用户
提问于 2015-07-29 19:14:40
回答 1查看 563关注 0票数 0

我有一个打字稿项目:

代码语言:javascript
复制
myproject
 |
 +-src (folder)
 |  |
 |  +-main.ts
 |  +-stringHandler.ts
 |  +-disposable.ts
 +-out (folder)
 |  |
 |  +-...
 +-Gruntfile.js

在我的Grunt配置中,我有一个2步任务,它编译myproject/src/中的所有.js文件,并生成相应的.js文件到myproject/out/中。因此,在完成任务的第一步之后,我有以下内容:

代码语言:javascript
复制
myproject
 |
 +-out (folder)
    |
    +-main.js
    +-stringHandler.js
    +-disposable.js

捆绑

任务的第二步是生成包文件 myproject.js。我正为此目的使用RequireJS

我安装了格朗特.控制-要求。处理捆绑任务的Gruntfile.js文件如下(仅显示文件中的相关部分):

代码语言:javascript
复制
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']);
};

当Grunt到达requirejs时,在成功编译项目后,我会得到以下错误:

在(C:\Users\myuser\Documents\myproject\node_modules\grunt-contrib-requirejs\node_modules\requirejs\bin\r.js:29567:19) originalError: originalError: Error:缺少“名称”、“包含”或“模块”选项时,运行"requirejs:compile“任务{ Error: Error:缺少"name”、"include“或"modules”选项}

我可以理解缺少参数,但是当我使用name时,我会得到其他错误。我想在一个更一般的层面上一定有什么问题。正确的配置格式是什么?谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-08-07 19:18:36

这假设main.ts是应用程序的入口点,它包含一个带有应用程序依赖项(库和shims)的require.config部分。

首先,将require.config部分从main.ts中移出并放入它自己的文件config.ts中。将应用程序引导代码保留在main.ts中。

然后确定要在何处部署这个优化的应用程序代码。让我们假设它是一个名为build的目录,它与您的srcout文件夹并行。

更新Gruntfile以反映此配置:

代码语言:javascript
复制
requirejs: {
    compile: {
        options: {
            baseUrl: "out",
            mainConfigFile: "out/config.js",
            modules: [
                { name: "main" }
            ],
            dir: "build",
            optimize: "none" // skip compression while debugging
        }
    }
}

您可以在http://requirejs.org/上阅读更多关于这些配置选项的信息,但是下面是基本的概述:

  • baseUrl:源JS代码所在的位置。
  • mainConfigFile:指向上面提到的配置对象。它告诉插件依赖关系的所在。这样就不需要在两个地方指定和手动更新依赖项列表。
  • modules:是应用程序引导程序的数组。在本例中,有一个列表,main.js
  • dir:将在其中生成优化的应用程序。请注意,您的依赖项也将在这里复制。
  • optimize:我取消了这个操作,这样您就可以轻松地在./build下调试生成的应用程序了。当你高兴的时候删除它,插件会优化(压缩和处理)你的构建文件。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31709213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档