在requirejs优化器的回调中需要一个本地模块

时间:2017-08-25 09:30:26

标签: javascript node.js gulp requirejs gulp-watch

function test(){
    //optimize operation
    requirejs.optimize(profile, function(){
        //success callback
        //require local module hehe
        requirejs.config({
            baseUrl: 'scripts'
        });
        var nice = requirejs('hehe');
        console.log(nice);  
    }
    , function(err) {
        //failure operation
        console.log(err);
})};

我在nodejs环境中运行requirejs。(r.js)

似乎我无法获得模块' hehe'在回调中。控制台的正确输出应该是' 2',而当前输出是' undefine'

但是如果我把requirejs(...)var nice; console.log(nice)放回回调中。输出是正确的。 问题似乎与requireJS中的上下文有关。

function test(){
requirejs.optimize(profile, function(){
    //success callback
    },
    function(err){
    console.log(err);
    }
);
requirejs.config({
    baseUrl : 'scripts'
});
var nice = requirejs('hehe');
console.log(nice);}

令我困惑的是,即使我把它们排除在回调之外,当我在gulp watch中使用test()时,问题仍然存在。

gulp.task("build", function(){
    test();
}):
gulp.task("watchsrc",function(){
    gulp.watch('*.js',['build']);
});

当我运行gulp watch并修改src js文件时。在它第一次工作时,控制台输出是2.但是当我第二次修改文件时,结果再次变得不确定。

0 个答案:

没有答案