使用'要求'在第三方浏览器js

时间:2015-06-30 03:20:12

标签: javascript jquery

我的javascript应用是一个客户端应用。 在NodeJS中运行,使用Require.js,AMD或ComponentJS。

但是,某些旨在在客户端中使用的第三方JS库使用require方法。以下是大量使用的客户端库中的两个示例:

https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.fileupload.js#L26

https://github.com/moment/moment/blob/develop/moment.js#L264

这些库的使用是否意味着我需要包含RequireJS,AMD或ComponentJS?是否需要'客户端中的功能使用变得如此常见,以至于我 以确定它已被定义?

1 个答案:

答案 0 :(得分:2)

不,您不必使用require()或定义它的环境/库。但是,这是一种选择。

每个脚本只是尝试使用require()一次支持多个模块模式/系统(如果它可用)。在使用它之前,它们会检查是否存在与CommonJS模块相关的其他对象:

} else if (typeof exports === 'object') {
if (!locales[name] && typeof module !== 'undefined' &&
        module && module.exports) {

但是,对于moment.js,您只需要通过<script>包含区域设置。 loadLocale()可用于访问已加载的任何内容,但无法require()实际加载更多内容。

<script src="moment.js"></script>
<script src="locales/es.js"></script>
<script>
    var es = loadLocale('es');
</script>

umdjs/umd project记录了支持混合系统的一些常见模式,如https://google-developers.appspot.com/chart/interactive/docs/gallery/columnchart#data-format