Javascript 在需要模块之前,使用require.js运行公共代码

Javascript 在需要模块之前,使用require.js运行公共代码,javascript,requirejs,momentjs,Javascript,Requirejs,Momentjs,我在一个国际网站的几个不同的页面上使用。每个页面都使用require.js在瞬间进行require Moment允许您以该区域设置格式显示日期。但是,每次加载页面时都必须运行此代码(因为我不确定用户首先加载哪个页面) 我想做的是将配置语言环境的代码移动到类似于预先要求的步骤,这样我就不必记住在每个页面上配置语言环境(而且它会变得更加枯燥)。所以我要做的就是 var Moment = require('moment'); 预要求步骤可能已经配置了区域设置 这可能吗?可以给require conf

我在一个国际网站的几个不同的页面上使用。每个页面都使用require.js在瞬间进行require

Moment允许您以该区域设置格式显示日期。但是,每次加载页面时都必须运行此代码(因为我不确定用户首先加载哪个页面)

我想做的是将配置语言环境的代码移动到类似于预先要求的步骤,这样我就不必记住在每个页面上配置语言环境(而且它会变得更加枯燥)。所以我要做的就是

var Moment = require('moment');
预要求步骤可能已经配置了区域设置


这可能吗?

可以给require config对象一个回调,以便在加载依赖项之后和定义require()之前执行:

requirejs.config({
    deps: ['moment'],
    callback: function (moment) {
        console.log(moment().format());
    }
});

是的,这是可能的,就像这样:

  • 创建一个模块,该模块将被称为
    即时配置

    define(['moment'], function (moment) {
        // Call what you need to call to configure moment...
        return moment;
    });
    
  • 使用
    映射
    配置,使每个加载瞬间的人都能真正加载配置的
    瞬间
    模块,而
    配置的瞬间
    加载真正的
    瞬间

    map: {
        '*': {
            moment: 'moment-configured'
        },
        'moment-configured': {
             moment: 'moment'
        }
    }
    
  • 此方法改编自关于如何使用
    noConflict
    自动加载jQuery的示例。使用此映射配置,需要
    时刻
    的所有模块将获得
    时刻配置
    ,除了
    时刻配置
    将获得真实的
    时刻

    map: {
        '*': {
            moment: 'moment-configured'
        },
        'moment-configured': {
             moment: 'moment'
        }
    }