目標

由於 JavaScript 可以同時撰寫給伺服器和瀏覽器使用,因此 webpack 提供多個部署目標,您可以在 webpack 組態中設定這些目標。

用法

若要設定 target 屬性,請在 webpack 組態中設定目標值

webpack.config.js

module.exports = {
  target: 'node',
};

在上述範例中,使用 node webpack 會針對類似 Node.js 的環境進行編譯(使用 Node.js require 來載入區塊,且不會觸及任何內建模組,例如 fspath)。

每個目標都有各種部署/環境特定的附加功能,以符合其需求。請參閱可用的目標

多個目標

儘管 webpack 支援將多個字串傳遞到 target 屬性,但您可以透過打包兩個不同的組態來建立同構函式庫

webpack.config.js

const path = require('path');
const serverConfig = {
  target: 'node',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'lib.node.js',
  },
  //…
};

const clientConfig = {
  target: 'web', // <=== can be omitted as default is 'web'
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'lib.js',
  },
  //…
};

module.exports = [serverConfig, clientConfig];

上述範例會在您的 dist 資料夾中建立 lib.jslib.node.js 檔案。

資源

從上述選項中可看出,您可以選擇多個部署目標。以下是您可以參考的範例和資源清單。

6 貢獻者

TheLarkInnrouzbeh84johnstewsrilmanbyzykEugeneHlushko