2016-08-02 24 views
0

如何使用webpack從幾個腳本製作一個包?我試圖指出幾個條目,但只包括最後,其他只是沒有看到如何功能。如何使用webpack從幾個腳本製作一個包?

這是我的APP1:

function setCats() { 
    alert('cat'); 
} 

exports.setCats = setCats; 

我APP 2:

function setDogs() { 
    alert('dog'); 
} 

exports.setDogs = setDogs; 

我的index.html:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <script src="bin/app.bundle.js" charset="utf-8"></script> 
</head> 
<body> 
    <script>app.setCats()</script> 
    <script>app.setDogs()</script> 
</body> 
</html> 

我webpack.config.js:

module.exports = { 
    entry: { 
     app: [ 
      './src/app1.js', 
      './src/app2.js', 
     ] 
    }, 
    output: { 
     path: './bin', 
     filename: 'app.bundle.js', 
     library: 'app' 
    }, 

    module: { 
     loaders: [{ 
      test: /\.js$/, 
      exclude: /node_modules/, 
      loader: 'babel-loader', 
     }] 
    }, 
}; 

建設和瀏覽器中運行後,驚動了剛剛狗和控制檯我有這樣的錯誤:

index.html:8 Uncaught TypeError: app.setCats is not a function

謝謝:)

回答

0

這很簡單,你只能加載在一個的WebPack輸出束一個切入點。如果使用多個,它們全部被加載,但只導出最後的入口點。這通常用於在庫之前加載polyfills,例如,因爲它們不會導出任何內容。

做你想做的事,你應該簡單地做,你這樣做的另一個更高層次的文件:

var setCats = require('./app1.js').setCats; 
var setDogs = require('./app2.js').setDogs; 

module.exports = { 
    setCats: setCats, 
    setDogs: setDogs, 
}; 

然後簡單地只使用文件作爲一個單一入口點(entry: './src/app.js')。建立後,捆綁的庫將工作,幷包含app.setCatsapp.setDogs

+0

非常感謝) –

相關問題