gpt4 book ai didi

php - 像 PHP 的 include 一样加载 Javascript

转载 作者:行者123 更新时间:2023-12-02 18:46:46 24 4
gpt4 key购买 nike

今天我要一些东西,我不敢相信能在网上找到。

我正在尝试创建一个 javascript 函数,它允许我提供文件名/路径名作为参数,并且该函数返回将立即执行/初始化的 javascript 代码 - 就像 PHP 的 include 或 require 一样。

现在我尝试了几种技术来实现我的方法,但我只是没有找到正确的位置,所以我可能会问:是否可以在 JS 中做到这一点?

提前致谢

最佳答案

有许多库和标准只是为此目的而存在。 Node.js 中内置了 CommonJS 实现。如果您想从文件中导出一段代码或文件的全部内容,可以将其附加到 module.exports 或简单地 exports 对象。然后,您可以使用 require('./path/to/file'); 在单独的代码段中要求它。

一些库尝试借用这种方法并在客户端实现它,browserify 就是其中之一。

但是,最好看看其中最好的客户端库:RequireJS

RequireJS 实现了所谓的异步模块定义模式,该模式将所有项目依赖项加载到顶级文件中。它使您可以访问两个带有多个参数的函数:require()define()。第一个函数只需要依赖项,而第二个函数定义了一个模块和模块依赖项的名称,如下所示:

未定义模块的顶级文件,仅使用它们:

require(['jquery', 'underscore', 'backbone'], // dependencies
function($, _, Backbone) { // dependencies are passed into callback
$('div').append('Test'); // dependencies are available to this file
}
);

模块:

define(['jquery', 'underscore', 'backbone'], // this module's dependencies
function($, _, Backbone) { // dependencies are made available
var MyModule = {};
return MyModule; // this return statement essentially defines the module
}
);

这种方法的优点在于,通过拥有一个顶级文件和几个都定义了自己的依赖项的模块,您只需要引用一个模块(如果它实际上是该文件的依赖项),因此您的顶级文件东西总是整洁有序,通常只包含一个初始化函数。

RequireJS 还附带了一个名为 R.js 的优化器,它可以使用 UglifyJS 或 Google 的 Closure 编译器按正确的顺序缩小和连接脚本。值得一看。

关于php - 像 PHP 的 include 一样加载 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16297688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com