JavaScript 中的 Require() 函数

Posted

技术标签:

【中文标题】JavaScript 中的 Require() 函数【英文标题】:Require() function in JavaScript 【发布时间】:2011-12-05 11:35:14 【问题描述】:

当我打开 Chrome 14 的控制台并输入...

require(或require(),如果重要的话)

我得到:ReferenceError

这意味着 javascript 默认没有这个功能,对吧?至少在网络浏览器上。

我为什么要谈论这个? 我需要 JavaScript 的 Markdown 解析器。

怎么办? 我像往常一样打开了 GitHub 和 searched。第一个符合我需求的结果是this 和this。

通常(我对 JavaScript 不太擅长)我在我的代码之前使用 <script /> 标签包含我想使用的脚本,然后......好吧 - 使用它。但是这次我不明白发生了什么...... :(

#1 脚本的用法:

var input = "# Heading\n\nParagraph";
var output = require( "markdown" ).tohtml( input );
print( output );

#2 脚本的用法:

var marked = require('marked');
console.log(marked('i am using __markdown__.'));

require() 是从哪里来的?感谢您的建议! :)

【问题讨论】:

另请参阅related question,了解如何选择特定标识符(例如特定函数)以实现与import 类似的功能。 【参考方案1】:

这是一种包含node.js 包的方法。幸运的是,您链接到的第一个包markdown-js 非常聪明。它会检查它是否包含在一个节点包中,如果没有,会将 markdown 对象设置为window.markdown。因此,您只需将this file 包含在<script> 标记中,您就可以在全局范围内使用markdown 对象。

【讨论】:

【参考方案2】:

从您链接到的页面:

使用 CommonJS 的简单方法是:

看起来require 来自CommonJS

【讨论】:

您还可以使用 Webmake - github.com/medikoo/modules-webmake 为浏览器打包 CommonJS/Node.js 模块。但是请注意,要移植的模块不应依赖于 Node.js 本机模块(如 fspath),如果是这种情况,您需要为浏览器填充这些本机模块(已经有一些 shims 可用Github)。

以上是关于JavaScript 中的 Require() 函数的主要内容,如果未能解决你的问题,请参考以下文章

laravel 中的 Javascript 函数未定义

通过 ejs 文件中的 javascript 访问 JSON

JavaScript - 使用 require 读取 JSON 文件的结果与 fs.readFileSync 不同

JavaScript中的内置函数

nodejs(第三篇):nodejs中的文件模块nodejs中的require与exportshttp模块补充JavaScript Standard Style

JavaScript 中的 Promise.all:如何获得所有承诺的解析值?