2016-12-04 68 views
0

我有一個庫在瀏覽器以及服務器上運行。該庫依賴於Needle,如果在瀏覽器中使用XMLHttpRequests請求。該庫將在前端使用捆綁的browserified庫,並使用Node中的常規ES6代碼。條件節點/ Browserify需要庫嗎?

所以這裏有兩組代碼,dist/vendor.min.js供瀏覽器使用,lib/index.js供節點使用。在入口點我的圖書館

index.js

'use strict'; 

// In browsers, load the bundled version 
module.exports = process.browser ? require('./dist/vendor.min.js') : require('./lib/index.js}'); 

package.json

{ 
    "main": "index.js" 
} 

,直到我決定醜化前端代碼這個解決方案工作正常。使用這個庫的應用程序醜化了生產環境中的所有第三方庫,並且這裏發生的事情是uglify也試圖醜化非轉換ES6 javascript的節點代碼。

有沒有更好的方式來有條件地加載這些庫?

+0

此策略是從http://stackoverflow.com/questions/23038483/how-to-detect-when-browserify-is-being-run – bneigher

回答

1

似乎有一個更優雅的方式來做到這一點。

package.json

{ 
    "main": "index.js", 
    "browser": { 
    "index.js": "./dist/vendor.min.js" 
    }, 
} 

不知道這會對名爲index.js任何嵌套的文件,但在這種情況下,我沒有什麼影響。但是,是的,似乎我們可以在瀏覽器環境中使用package.json'proxyquire'require('index.js')。整齊。感謝互聯網