返回介绍

构建目标(Targets)

发布于 2019-05-27 04:54:13 字数 4590 浏览 1224 评论 0 收藏 0

因为服务器和浏览器代码都可以用 JavaScript 编写,所以 webpack 提供了多种构建目标(target),你可以在你的 webpack 配置中设置。

W> webpack 的 target 属性不要和 /doc/webpack-concepts-output.libraryTarget 属性混淆。有关 /doc/webpack-concepts-output 属性的更多信息,请查看我们的指南

用法

要设置 target 属性,只需要在你的 webpack 配置中设置 target 的值。

webpack.config.js

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

在上面例子中,使用 node webpack 会编译为用于「类 Node.js」环境(使用 Node.js 的 require ,而不是使用任意内置模块(如 fspath)来加载 chunk)。

每个target都有各种部署(deployment)/环境(environment)特定的附加项,以支持满足其需求。查看target 的可用值

?>Further expansion for other popular target values

多个 Target

尽管 webpack 不支持向 target 传入多个字符串,你可以通过打包两份分离的配置来创建同构的库:

webpack.config.js

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

var clientConfig = {
  target: 'web', // <=== 默认是 'web',可省略
  /doc/webpack-concepts-output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'lib.js'
  }
  //…
};

module.exports = [ serverConfig, clientConfig ];

上面的例子将在你的 dist 文件夹下创建 lib.jslib.node.js 文件。

资源

从上面的选项可以看出有多个不同的部署目标可供选择。下面是一个示例列表,以及你可以参考的资源。

?> Need to find up to date examples of these webpack targets being used in live code or boilerplates.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文