簡體   English   中英

將純RequireJS項目移至Maven

[英]Move pure RequireJS project to Maven

我有一個使用RequireJS的裸露Javascript(+ Jquery + Backbone)的項目。 我包括類似的依賴項:

require.config({
    baseUrl: "./js/",
    paths: {
        jquery: 'lib/jquery-1.8.2',
        underscore: 'lib/underscore-1.4.2',
        backbone: 'lib/backbone-1.1.2',
        'backbone.localStorage': 'lib/backbone.localStorage'
    },
    shim: {
        underscore: {
            exports: "_"
        },
        backbone: {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
        'backbone.localStorage': {
            deps: ['backbone'],
            exports: 'Backbone'
        }
    }
});

我想要:將項目移至Maven。 我不想以如此丑陋的方式包括所有這些部門。 此外,我想使用Hibenate,Spring和其他應該通過Maven導入的deps。

問題:我對maven插件或RequireJs的工作方式尚未深入了解。 我看着這個 ,但一無所知。

問題: 您能否編寫一個逐步的操作要點,說明如何將我的應用程序移至Maven?

Maven並不是對您顯示的( 所謂的 )“丑陋”配置的真正答案,因為它在完全不同的層次上工作。 首先,Maven是服務器端工具,而RequireJS是客戶端(很抱歉,如果您已經知道的話,但是-> “我對maven插件或RequireJs的工作方式尚未深入了解” )。 此配置特定於RequireJS,因此無法解決。

即使使用Maven,您仍然需要配置您的前端應用程序,並告訴它在哪里可以找到所需的依賴項以及如何對其進行初始化。 客戶端應用程序的路徑是Web資源,可以與項目的文件結構任意不同,因此自動化配置過程並不容易。

我一直在使用RequireJS maven插件 (在您發布的同一問題的答案之一中找到了它)來包裝r.js但設置起來特別r.js ,尤其是在帶有時間戳的情況下。 我只是覺得這種方法是有缺陷的,這是由於Java和JavaScript工具之間的根本差異所致-您總是會得到不理想的折衷,並且任何非標准的步驟都將花費大量時間和精力。

越來越流行的另一種方法是將客戶端和服務器端應用程序完全拆分為單獨的項目,從而允許您使用特定於語言的工具來使過程盡可能地流暢。 服務器端使用Maven,客戶端使用Grunt + Bower + RequireJS + etc。 雙方使用基於HTTP的JSON通過定義明確的接口進行對話。

找到一些入門閱讀材料應該很容易,但是由於您提到的是Spring,因此值得一看一下參考Spring應用程序Sagan 它演示了如何將前端和后端拆分為共享相同公共“核心”的單獨的Maven子模塊。


使用webjars的權宜之計解決方案使使用Maven JS庫更加文明。 您可以直接在pom.xml中定義依賴項,就像其他靜態資產一樣,它們很容易暴露在前端。 但是,這在綁定或自定義庫時會限制您的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM