对我来说,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捆绑在节点中运行的应用程序的用例。
答案 0 :(得分:1)
我能想到何时为webpack
使用node
的一个原因是当您有一个node_modules包尚未编译时(仍然在ES6中)。
babel-node
将无法帮助您将需要转译的node_modules软件包与其余代码捆绑在一起
我必须完成此过程。):这种情况在Yarn Workspaces
中很有用,因为您希望服务器依赖于工作区中的另一个程序包。借助webpack在其他软件包中进行更改时,服务器将在何处重新更新