我正在編寫Couch app。構建過程的輸出必須是自包含的JS文件的目錄樹,就像這樣:使用CommonJS模塊和ES6模塊編譯單獨應用程序(每個入口點)的目錄樹
dist ├── _attachments │ ├── logo.jpg │ └── splash.jpg ├── lists │ └── sitemap.js ├── shows │ ├── article.js │ ├── home.js │ └── dashboard.js ├── views │ ├── recent │ │ └── map.js │ ├── featured │ │ └── map.js │ └── stats │ └── map.js │ └── reduce.js
每個輸出JS文件是一個完整的應用程序,與內聯的所有導入的模塊。每個輸入文件都是一個單獨的入口點,它將要求/導入頂級lib
目錄(和node_modules
或課程)中的模塊。生成的dist
目錄然後通過Erica部署到沙發(歡迎提供替代建議)。
到目前爲止,我已經試過如下:
- 編譯巴貝爾(ES7耶!),用西蘭花。使用CommonJS require語句生成ES5模塊;需要進一步的構建步驟來嵌入導入的模塊。
- Browserify和uglify從命令行。看起來這只是爲了產生一個輸出文件而設計的。
- 在makefile中,分別對每個輸入進行uglify,並將輸出發送到
dist
下的匹配目錄路徑。一項正在進行的工作,但不是理想的解決方案。
所以,我即將回到Makefiles。這是一種奇特的方式,但我真的很想堅持現代/基於JS的構建過程 - 就像西蘭花或Gulp(或其他)。建議?
更新
我看到的WebPack可以建立多個進入點多輸出文件。但它可以保留輸入目錄結構嗎?
如果我正確理解你的問題,你想要內聯需要js模塊使它們在你的腳本中可用。是對的嗎?你可以這樣做,但你不需要,因爲couchdb支持需要js。這意味着你可以執行'var my_lib = require(「path-to-some-lib」)',它可以和couchdb一起工作。 –
好吧,那麼我只需要將ES6和CommonJS模塊轉換爲RequireJS模塊。你有鏈接到關於CouchDB的模塊加載功能的文檔嗎?我一直無法找到任何東西,除了一些基於評論中的元數據的自定義方案(kanso)。 –
我發現[這篇文章](http://caolan.org/posts/commonjs_modules_in_couchdb/)非常有用。但[這裏是官方文檔](http://wiki.apache.org/couchdb/CommonJS_Modules)。希望這可以幫助 :) –