簡體   English   中英

前端開發工作流程

[英]Frontend Development Workflow

我很好奇是否有其他人使用類似的方法,或者如果有人有想法或建議來幫助改善工作流程。 據我所知,這是一種有點原創的方法。

基本上,我正在使用NodeJS來開發我的客戶端代碼。 我使用Grunt + watch自動連接並將我的所有項目源縮小為一個.min文件,該文件被寫入public / js文件夾。 但是,為了測試我使用Jasmine-node,因此我需要一個索引文件(僅用於此目的),它需要所有項目源文件。 但是,因為我想在Node和瀏覽器中運行相同的代碼,所以我將所有內容添加到全局項目命名空間,例如:

myApp.framework.someClass

在myapp.js文件中,然后我導出到節點(如果模塊+導出存在)。 這允許我的所有對象都暴露給節點,而不必將module.exports東西添加到每個源文件,相反,我可以簡單地做:

(function() { myApp.framework.someClass = function() {...} })();

在每個文件中,甚至簡單地:

myApp.framework.someClass = function() {...}

這對於客戶端來說效果非常好,因為一切都已經存在於內存中,但是缺點是在Node中,有時嘗試訪問myApp命名空間中的另一個類會失敗,因為我沒有使用像RequireJS這樣的東西來管理依賴項。

我的想法可能是像在標准節點應用程序中那樣添加文件的需求,但是在構建過程中,有任何節點特定的東西,被剝離。

請思考/評論!

我已經看到這樣的技巧被用於使JS代碼在Node和瀏覽器環境中使用。 這是來自異步庫:

// Node.js
if (typeof module !== 'undefined' && module.exports) {
    module.exports = async;
}
// AMD / RequireJS
else if (typeof define !== 'undefined' && define.amd) {
    define([], function () {
        return async;
    });
}
// included directly via <script> tag
else {
    root.async = async;
}

https://github.com/caolan/async/blob/master/lib/async.js

希望有所幫助!

暫無
暫無

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

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