codecamp

Webpack target

由于 JavaScript 既可以编写服务端代码也可以编写浏览器代码,所以 webpack 提供了多种部署 target,你可以在 webpack 的配置选项中进行设置。

用法

想设置 ​target​ 属性,只需在 webpack 配置中设置 target 字段:

webpack.config.js

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

在上述示例中,target 设置为 ​node​,webpack 将在类 Node.js 环境编译代码。(使用 Node.js 的 ​require​ 加载 chunk,而不加载任何内置模块,如 ​fs​ 或 ​path​)。

每个 target 都包含各种 deployment(部署)/environment(环境)特定的附加项,以满足其需求。具体请参阅 target 可用值。

多 target

虽然 webpack 不支持 向 ​target​ 属性传入多个字符串,但是可以通过设置两个独立配置,来构建对 library 进行同构:

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', // <=== 默认为 'web',可省略
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'lib.js',
  },
  //…
};

module.exports = [serverConfig, clientConfig];

上述示例中,将会在 ​dist​ 文件夹下创建 ​lib.js​ 和 ​lib.node.js​ 文件。

资源

从上面选项可以看出,你可以选择部署不同的 target。下面是可以参考的示例和资源:


Webpack 依赖图(dependency graph)
Webpack manifest
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }