为什么要使用Webpack捆绑在节点环境中运行的应用程序

时间:2019-03-07 09:46:25

标签: javascript node.js webpack babel

对我来说,Webpack是“ Web”的捆绑器,因为浏览器对js模块系统没有很好的支持。因此,使用Webpack,我们仍然可以使用“模块”方式为浏览器开发和打包它们。

Webpack有一个配置选项目标

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

使用node Webpack将进行编译,以便在类似Node.js的环境中使用

但是NodeJS已经支持CommonJS模块,为什么需要Webpack来构建可以在NodeJS环境中运行的东西?

此外,例如,如果要使用ES模块编译javascript,则可以使用es模块转换插件或适当的预设仅使用babel 进行编译。

为什么使用Webpack,将目标设置为node,然后使用babel loader ...而不是直接使用babel?

我想不出使用Webpack捆绑在节点中运行的应用程序的用例。

1 个答案:

答案 0 :(得分:1)

我能想到何时为webpack使用node的一个原因是当您有一个node_modules包尚未编译时(仍然在ES6中)。

babel-node将无法帮助您将需要转译的node_modules软件包与其余代码捆绑在一起

我必须完成此过程。):这种情况在Yarn Workspaces中很有用,因为您希望服务器依赖于工作区中的另一个程序包。借助webpack在其他软件包中进行更改时,服务器将在何处重新更新

How to include a few node_modules package in babel-node