我的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?是否需要'客户端中的功能使用变得如此常见,以至于我 以确定它已被定义?
答案 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。