将grunt requirejs与almond一起使用会导致;“定义未定义”;

将grunt requirejs与almond一起使用会导致;“定义未定义”;,requirejs,amd,js-amd,r.js,almond,Requirejs,Amd,Js Amd,R.js,Almond,在我的grunt.js文件中 requirejs: { dist: { options: { almond: true, wrap: true, modules: [{name: 'main'}], mainConfigFile: "src/js/main.js", baseUrl: "src/js", dir: "tmp/js"

在我的
grunt.js
文件中

requirejs: {
    dist: {
        options: {
            almond: true,
            wrap: true,
            modules: [{name: 'main'}],
            mainConfigFile: "src/js/main.js",
            baseUrl: "src/js",
            dir: "tmp/js",
            inlineText: true,
            preserveLicenseComments: false
        }
    }
}
运行
grunt requirejs:dist
会用一些缩小的文件填充
tmp/js
目录,其中包括一个大的main.js文件(所有文件似乎都像预期的那样捆绑在这个文件中),但是当我想这样包含这个文件时

<script type="text/javascript" src="tmp/main.js"></script>

它会导致一个
“未捕获引用错误:未定义定义”

使用almond的目的是,我不需要加载
require.js
文件来加载经过优化的文件-知道如何让它工作吗


脚注:我已经这样做了,除了以前编译了一个
main build.js
文件,但是现在似乎不再是这样了(更新…-。-)

,所以我尝试用以下文件和文件夹设置一个空目录

/grunt.js
/src/js/main.js
/tmp/js
这是我的grunt.js:

module.exports = function(grunt) {

    grunt.loadNpmTasks("grunt-requirejs");
    grunt.initConfig({
        requirejs: {
            dist: {
                options: {
                    almond: true,
                    wrap: true,
                    modules: [{name: 'main'}],
                    mainConfigFile: "src/js/main.js",
                    baseUrl: "src/js",
                    dir: "tmp/js",
                    inlineText: true,
                    preserveLicenseComments: false
                }
            }
        }
    });

    grunt.registerTask("default", "requirejs");
};
以下是我的main.js:

define(function() {
    console.log('hi');
});
我在控制台中运行了以下命令:

npm install grunt
npm install requirejs
npm install grunt-requirejs
grunt --gruntfile grunt.js
Grunt输出如下:

Running "requirejs:dist" (requirejs) task
>> RequireJS optimizer finished
Uncompressed size: 14234 bytes.
Compressed size: 1265 bytes gzipped. (2633 bytes minified)
/tmp/js/main.js中的结果文件确实引用了almond。但是它没有提到define函数,因为js已经最小化了。我对
define(
的调用被重写为
n(

我怀疑您可能在调用定义的最小化文件之外有代码


另外,在我的另一个项目中,我的mainConfigFile仅作为配置文件引用,而不是作为模块加载。

目前不再使用require.js,但我会在再次接触到它时尝试实施您的建议-谢谢您的回答:)