javascript - 如何将 Yii2 与 require.js 一起使用?

标签 javascript jquery requirejs yii2 assets

我有一个普通的,而不是 REST 应用程序。但我不知道这是否相关。我想使用 require.js因为我有几个 JS 文件。我知道 AssetBundles可以使用,但是,我的应用程序不是以 HTML-GET 请求启动的,所以 AFAIK 我不能使用它们,因为不会创建 Assets 。

背景信息:我的应用程序的行为类似于 REST 应用程序。它提供了一个 JS 文件,该文件将加载其他 JS 文件(使用 require.js;此 JS 文件包含从应用程序获取 JSON 数据的 AJAX 请求)。没有 HTML 操作。它仅提供 JSON 数据。

其中一些文件是像 jQuery 这样的库。 jQuery 已经是 provided by Yii2所以我认为浏览器可以通过 require.js 以某种方式获取这个 jquery.js 文件。但是,它存储在 @web/assets/54509f77/ 文件夹中,其中 545097ff 是动态的。 bootstrap.js 或 CSS 文件也是如此。那么,我如何在 require.js 中定义它呢?

谁能举例说明如何使用 Yii2 Assets 设置 require.js 场景?或者这没有意义,我应该提供我自己的 jquery.js 吗?

如果这一切都是愚蠢的,请随意投反对票。我没有使用 require.js 的经验...

最佳答案

我从未使用过require.js,但在使用 grunt 时我不得不关闭 Assets。

根据我的经验,如果您没有利用 Assets( bundle 和依赖项)的优势 - 您最好将其关闭并提供您自己的库。

$config = [
    // ...
    'components' => [
        // ...
        'assetManager' => [
            'bundles' => false,
        ],
    ],
];

棘手的一点是重新获取所有 Yii JS 文件,我建议您引用 samdarks chapter on Grunt即使您不使用它。这可能会有所帮助。

必须包含以下 JS 文件才能使用 Yii Widgets

"vendor/bower/jquery/dist/jquery.js",

"vendor/bower/bootstrap/dist/js/bootstrap.js",

"vendor/yiisoft/yii2/assets/yii.js",

"vendor/yiisoft/yii2/assets/yii.validation.js",

"vendor/yiisoft/yii2/assets/yii.activeForm.js"

关于javascript - 如何将 Yii2 与 require.js 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38239009/

相关文章:

javascript - 如何将 Requirejs-handlebars 与 Grunt-contrib-requirejs 优化器一起使用?

jquery - i18next 不与 RequireJS 一起使用

javascript - requireJS 中的上下文和嵌套模块

javascript - 为 div 分配相同的高度(响应式)

javascript - 为什么这个函数在页面加载时没有运行?

如果 *any* 属性匹配,JQuery 选择元素

javascript - 导航菜单

javascript - React 测试事件冒泡

Javascript 字母键绑定(bind)

javascript - 使用 JavaScript 解析 JSON 树