javascript - Javascript 模块、加载器、捆绑器和包管理器的混淆
问题描述
我没有得到所有的联系。它们居住在哪里以及它们的使用有什么影响。以下任何陈述是否正确?
- 加载器将驻留在浏览器中(加载后)?因此,当主应用程序 javascript 需要一些模块时,它将在幕后加载它
- 如果我使用捆绑器(命令行工具),它将从我的所有模块(以及所有常用模块)创建一个文件,所以没有异步加载,因为只有大 bundled.js?
- 为什么我在同一个项目中需要例如 bower.json 和 package.json(npm 仅用于下载构建实用程序)
- 他们从哪里获取模块(npm 存储库还是都有自己的?)
- 包管理器只是将模块下载到您的项目中以进行进一步处理
- npm 模块仅包含 .js 文件
- 你总是需要编排构建的方法(gulp、grunt、npm 脚本)
到目前为止,我还没有找到包含以下信息的资源:打包程序执行此操作,加载程序执行此操作。
解决方案
- 加载器将驻留在浏览器中(加载后)?因此,当主应用程序 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。
推荐阅读
- python - 我将数据从 csv 加载到 Python Pandas 并尝试将列设置为行(日期重复)
- java - 如何使用代码从 apk 中提取 SHA/MDA?
- python - 如何将标签添加到子图行和列?
- html - vs code live server 无法得到错误信息
- list - 我想从序言中的现有列表中制作一个过滤列表
- r - 在数据框中添加两个重复列并删除重复项
- php - TCPDF JSON 年假安排
- javascript - 从 .env 文件中获取未定义
- javascript - 无法确定任务 ':app:compileDebugJavaWithJavac' 错误的依赖关系
- reactjs - 一旦产品加载到 redux 商店,UseEffect 不会重新渲染页面