2017-06-29 62 views
3

我有一個節點js服務器應用程序,它使用ExpressPug。我想將它捆綁到可由pm2部署的單個腳本。這似乎有幾個問題。快遞,帕格和Webpack

  1. 在運行時,我得到Cannot find module ".",並在像

警告在./node_modules/express/lib/view.js 80編譯幾條短信:29-41關鍵 依賴性:請求依賴關係是一個表達式

似乎來自動態導入像require(mod).__express。我認爲Webpack不能靜態解決這些問題,也不知道要包含哪些依賴關係。

這怎麼解決?

  1. 如何讓Pug編譯併成爲輸出js的一部分?
+0

我碰到了同樣的問題。你有沒有找到如何做到這一點? –

回答

0

這是因爲的WebPack重新打包node_modules(已綁定)的依賴和哈巴狗的情況下,這是行不通的。

您需要在webpack externals選項中使用webpack-node-externals以明確要求不要重新捆綁依賴關係。

  1. 安裝的WebPack-節點的外部:npm i -D webpack-node-externals
  2. 整合它你的WebPack配置文件:

// ... 

const nodeExternals = require('webpack-node-externals') 

module.exports = { 
    target: 'node', 

    entry: { 
    // ... 
    }, 

    module: { 
    // ... 
    }, 

    externals: [nodeExternals()], 

    output: { 
    // ... 
    }, 
}