2016-08-11 59 views
1

我的項目大致有以下結構:用的WebPack開發服務器在遇到問題時設置

enter image description here

的WebPack把靜態資產在public文件夾中。

output: { 
     path: resolve('public'), 
     filename: 'bundle.js' 
    }, 

我想要做的就是讓開發的WebPack從服務器src文件夾服務index.html,而是從public文件夾請求靜態資產。這可能嗎?文檔中說,將index.html文件放在build文件夾中,但是如果可以將dev服務器設置爲從public文件夾中提供靜態資源,那麼就沒有理由在其中複製index.html

我嘗試了以下配置,但它沒有工作:

中的package.json:

webpack-dev-server --inline --history-api-fallback --content-base src 

在webpack.config.js:

output: { 
     path: resolve('public'), 
     publicPath: '../public', 
     filename: 'bundle.js' 
    }, 

附加信息,如果它很重要:我也在我的路由器中進行代碼分割,以便我得到一些較小的(0.bundle.js,1.bundle.js等),當應用程序切換到相應的路由時,它們是從父包(bundle.js)請求的。

我意識到那是什麼主束創建鏈接使用的WebPack配置的的output參數的publicPath選項依賴包。在我上面展示的例子中,publicPath/;所以如果我服務於public文件夾中的index.htmlindex.html需要bundle.js,則bundle.js將需要來自同一文件夾的0.bundle.js。另一方面,如果我將publicPath設置爲/public,則放置在public文件夾中的index.html將具有bundle.js,這將需要0.bundle.jspublic/public文件夾。

回答

0

只想說,雖然我還沒有找到一個答案,我原來的問題,我意識到,一個更美好的設置是使用HTMLWebpackPlugin,傳遞給它的template選擇我index.html。插件會自動引用我的腳本文件,將它們添加到模板中,並將結果html放在輸出路徑(public文件夾)中。

不能快樂吧!

相關問題