如何在require.js中使用Yii2?

时间:2016-07-07 06:43:44

标签: javascript jquery requirejs yii2 assets

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

背景信息:我的应用程序就像一个REST应用程序。它提供了一个JS文件,它将加载其他JS文件(带有require.js;这个JS文件包含AJAX请求以从应用程序获取JSON数据)。没有HTML操作。它只提供JSON数据。

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

棘手的一点是让所有Yii JS文件重新进入,即使您没有使用它,我也会将您推荐给samdarks chapter on Grunt。它可能会有所帮助。

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

  

“供应商/亭子/ jquery的/ DIST /的jquery.js”,

     

“供应商/亭子/引导/ DIST / JS / bootstrap.js”,

     

“供应商/ yiisoft / yii2 /资产/ yii.js”,

     

“供应商/ yiisoft / yii2 /资产/ yii.validation.js”,

     

“供应商/ yiisoft / yii2 /资产/ yii.activeForm.js”