在需要模块之前,请使用require.js运行公共代码
Use require.js to run common code before module is required
我在一个国际网站的几个不同页面上使用Moment.js。每个页面都使用require.js在Moment中进行require。
Moment允许您将区域设置为以该区域设置格式显示日期。然而,此代码必须在加载Moment的每个页面上运行(因为我永远不确定用户首先加载哪个页面)。
var Moment = require('moment');
// configure locale
我想做的是将配置区域设置的代码移动到类似于预先要求的步骤,这样我就不必记住在每一页上配置区域设置(而且它变得更加DRY)。所以我所要做的就是
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的示例。使用此映射配置,除了moment-configured
将获得真正的moment
外,所有需要moment
的模块都将获得moment-configured
。
require-config对象可以在加载依赖项之后和定义require()之前得到一个要执行的回调:
requirejs.config({
deps: ['moment'],
callback: function (moment) {
console.log(moment().format());
}
});
相关文章:
- 无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
- 弹出窗口-jQuery Mobile、Backbone.js和Require.js
- 在非SPA(单页应用程序)中使用Require.js和Backbone
- 在混合基本 URL 下动态加载 require.js 模块
- 节点JS require不起作用
- 困惑为什么我在 Node.js (require.js) 中收到此错误
- 使用节点 js require() 时的循环
- Node.js require() 总是返回未定义的
- javascript标记equivant中的node.js require()
- Angular.js+require.js+jQuery插件自定义指令
- Node.js:require()并传递变量
- Backbone.js+require.js:等待文件加载
- Node.js require() vs RequireJS?
- 如何使用Jquery-file-upload与backbone.js &require.js
- 通过Node.js require和CoffeeScript中的类解决循环依赖
- node . js“require"功能和参数
- Backbone.js,require.js:我如何将我的模型、视图和集合转换为require.js模块
- Backbone.js + Require.js and ViewsFactory
- JS“//= require bootstrap/” 语法是什么意思?(引导 3 屁股)
- Node.js ' require '放入一个数组而不是一个变量