首页 > 解决方案 > Javascript 模块、加载器、捆绑器和包管理器的混淆

问题描述

我没有得到所有的联系。它们居住在哪里以及它们的使用有什么影响。以下任何陈述是否正确?

到目前为止,我还没有找到包含以下信息的资源:打包程序执行此操作,加载程序执行此操作。

标签: javascriptwebpackmodulebowerbrowserify

解决方案


  • 加载器将驻留在浏览器中(加载后)?因此,当主应用程序 javascript 需要一些模块时,它将在幕后加载它

Loaders 是 webpack 的一个特性,这些 loader 用于处理 webpack 默认不理解的代码(css、sass、图像等)。它们仅在编译代码时使用,当您发布代码时,它不包含加载器。加载器只在构建期间运行。

--> 编辑:这不适用于问题,因为问题指的是 require.js 例如,但总体上仍然相关。

  • 如果我使用捆绑器(命令行工具),它将从我的所有模块(以及所有常用模块)创建一个文件,所以没有异步加载,因为只有大 bundled.js?

您可以进行预取、预光照,仅在需要时才可以加载块(捆绑包的片段)(使用动态导入查找代码拆分import(...)。这使得代码仅在将要加载时才被加载/请求。

  • 为什么我在同一个项目中需要例如 bower.json 和 package.json(npm 仅用于下载构建实用程序)

现在你不需要 bower,大部分(如果不是全部)bower 拥有的东西都可以在 npm 存储库中找到。

  • 他们从哪里获取模块(npm 存储库还是都有自己的?)

您下载的每个包都上传到 npm,您可以将 npm 视为“github”,但对于库。

  • 打包程序只是将模块下载到您的项目中以进行进一步处理

是的

  • npm 模块仅包含 .js 文件

错,看看引导程序。

你总是需要编排构建的方法(gulp、grunt、npm 脚本)

是的,但是如果你想转译内容,你只能使用 babel-cli。


推荐阅读