[英]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');
並且預先要求步驟已經配置了區域設置。
這可能嗎?
是的,有可能,像這樣:
創建一個名為moment-configured
的模塊:
define(['moment'], function (moment) { // Call what you need to call to configure moment... return moment; });
使用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.