我想进入require.js以更清洁的方式构建我的js文件。所以我偶然发现了require.js,经过一些挖掘和了解require.js的工作方式后,我意识到让它做我想要的开箱即用是一项相当艰巨的任务,因为它使用它& #39;自己的范围,什么不是。所以我认为它不适合zf2因为它的工作方式。
经过一次小小的搜索后,我偶然发现了一个2岁的zf2模块SxRequireJs。但是我不得不玩我的vhosts和mod重写我决定反对它并发现这个RdnRequireJs。现在我按照所有安装步骤进行了以下设置。
//application.config.php
//After successfully installing it trough composer I added the namespace
'modules' => array(
'Application',
'ZfcBase',
'ZfcUser',
'RdnRequireJS',
),
之后我在Bar.js
目录中创建了一个/public
文件,并在其中添加了这些定义。
//剥离.min的文件名以简化此处的调用
define([' ./ html5shiv'],function(shiv){ shiv.log(' Hello World!'); });
define([' ./ response'],function(resp){ resp.log(' Hello World!'); });
define([' ./ jquery'],function(jq){ jq.log(' Hello World!'); });
define([' ./ bootstrap'],function(twboot){ twboot.log(' Hello World!'); });
之后,我在我的global.php
中覆盖了RdnRequireJS配置,如下所示:
return array(
'rdn_require_js' => array(
'library' => '//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js',
'config' => array(
'baseUrl' => '/modules',
'paths' => array(
'App' => 'app/js'
),
'packages' => array(
'App'
),
'shim' => array(),
'deps' => array(),
),
),
);
现在我尝试使用viewHelper来获取我的内联脚本,就像在RdnRequireJS文档中建议的那样。
我在<?php $this->requireJS('Bar') ?>
内和layout.phtml
模块中调用了index.phtml
但没有成功。 viewHelper返回&#39; NULL&#39;什么都没有任何错误消息。我将配置更改为本地require.js
文件,但没有任何成功。然后将rdn_require_js
configs baseUrl重命名为模块,而不是模块,但这并没有把我带到任何地方。
github似乎没有太多的贡献,也没有维基或任何问题。所以,我想知道你们中间是否有人真正开始运作?帮助会很有帮助。
感谢您的时间。
编辑:我忘了提到我还添加了文件夹app/js
,它将我当前的js文件存储在我的项目根目录中。
答案 0 :(得分:1)
尝试让它工作我确实得到它加载Bar.js和Foo.js文件。它尝试从config
中定义的public中的/ modules子文件夹加载它们'config' => array(
'baseUrl' => '/modules',
viewhelper本身不会返回任何输出。它只是添加了文件&#34; Bar&#34;给你的朋友。哪个requireJs会尝试从&#34; baseUrl&#34;
加载 然后RdnRequireJS在你的html末尾添加脚本。看起来像这样的东西
var require = {"baseUrl":"\/modules","paths":{"App":"app\/js"},"packages":["App"],"shim":[],"deps":["Bar"]};
将加载哪个requireJs。
我希望这会对你有所帮助。