簡體   English   中英

在需要模塊之前,使用require.js運行公共代碼

[英]Use require.js to run common code before module is required

我在國際網站的幾個不同頁面上使用Moment.js 每個頁面在Moment中使用require.js。

Moment允許您將語言環境設置為以該語言環境格式顯示日期。 但是,此代碼必須在每個頁面上運行Moment加載(因為我永遠不確定用戶首先加載哪個頁面)。

var Moment = require('moment');
// configure locale

我想要做的是移動代碼以將區域設置配置為類似於預先需要的步驟,這樣我就不必記住在每個頁面上配置區域設置(並且它變得更加干燥)。 所以我所要做的就是

var Moment = require('moment');

並且預先要求步驟已經配置了區域設置。

這可能嗎?

是的,有可能,像這樣:

  1. 創建一個名為moment-configured的模塊:

     define(['moment'], function (moment) { // Call what you need to call to configure moment... return moment; }); 
  2. 使用map配置,以便加載時刻的每個人都真正加載您的moment-configured模塊,而moment-configured加載真實moment

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

此方法改編自RequireJS文檔中有關如何使用noConflict自動加載jQuery的noConflict 使用此映射配置,所有需要moment模塊將進行moment moment-configured ,除了moment-configured將獲得真實moment

可以為require config對象提供在加載依賴項之后和定義require()之前執行的回調:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM