2017-04-20 184 views
1

我正在嘗試爲我的web應用程序的javascript使用google封閉庫。我在static目錄我的JS腳本關閉庫一起:防止默認添加deps.js

static/ 
    app.js 
    closure-library 

JS代碼使用閉合製造商合併成一個單一的腳本:

static/closure-library/closure/bin/build/closurebuilder.py \ 
> --root=./static/closure-library/ \ 
> --namespace="pr" \ 
> --output_mode=script \ 
> --output_file=./static/app-calc.js static/app.js 

後端是圍棋。上面生成的腳本包含在HTML爲:

<script type="text/javascript" src="deps.js"></script> 

由於此文件是未添加:

<script src="/static/app-calc.js"></script> 

然而,一旦加載頁面時,deps.js是上面的腳本標籤後添加到DOM任何前面的路徑,瀏覽器使用當前應用程序的URL來加載這個腳本。

有什麼方法可以改變這種行爲或防止添加deps.js? 據我所知,由於整個圖書館已合併成一個單一的文件,應該不需要這個文件。封面docs約depswriter提到路徑與base.js相同,但由於base.js甚至沒有包括在內,我不明白這是如何有任何影響應用。

回答

1

Closurebuilder已被棄用,您應該直接使用閉包編譯器。見How to use Google Closure compiler其中涵蓋了你的許多問題。關於Managing Dependencies的維基頁面有最新的詳細信息。請注意,還有很多關於閉包編譯器的舊文檔沒有被更新,例如https://developers.google.com/closure/library/docs/closurebuilder。其中一些頁面仍然相關,但其他頁面已過時。 github上的wiki都是最新的。

deps.js文件現在只需要在調試時直接從源代碼運行(無需編譯)。見https://github.com/google/closure-compiler/wiki/Debugging-Uncompiled-Source-Code

編譯器將能夠只採用你正在使用的閉包庫並將其與你的代碼結合起來。

+0

我嘗試使用編譯器與'--dependency_mode'標誌。 'deps.js'仍然顯示。 – abhink

+0

你可以顯示你正在使用的完整編譯命令嗎?你是什​​麼意思「deps.js仍然顯示」?據我所知,生成'deps.js'的唯一方法是使用諸如'depswriter.py'或'closurebuilder.py'這樣的Python腳本 - 你仍然在使用這些腳本嗎?你也可以顯示更多的目錄結構:源文件在哪裏,編譯輸出的位置? – owler