我正在嘗試使用requirejs並加載外部供應商js並隱藏全局變量,如Backbone或Underscore。Require.js東西不明確
這裏是我的代碼:
<script data-main="./main" src="<?php echo $rootRequirejs?>/require.js"></script>
<script type="text/javascript">
require.config({
baseUrl: "/web/js",
paths: {
"jquery": "/vendor/js/jquery-1.7.1.min",
'underscore': '/vendor/js/underscore-min',
'backbone': '/vendor/js/backbone-min'
}
});
這裏是我的問題:
1) 如果我去JavaScript控制檯和我寫的骨幹或下劃線它們被定義...。
我認爲它不應該從控制檯訪問,但只是從我的main.js文件。
他們爲什麼是全球性的?
關於全局,直到你對它們使用'noConflict()'方法時,它們仍然是全局的。 IIRC,require.js允許你爲這些依賴定義一個函數,所以你可以返回類似於'Backbone.noConflict()'的東西。 –
順便說一句,你看[Require.js 2.0](http://tagneto.blogspot.fr/2012/05/requirejs-20-released-onward-amd.html)嗎?它解決了你的問題。另外請看「升級require.js」指南,你會看到很多有用的東西。 –
你是如何加載你的moudules的?你可以發佈你的main.js來看看如何聲明依賴關係嗎? –