Webpack 是捆绑者。喜欢 Browserfy 它在代码库中查找模块请求( require 要么 import 并递归地解决它们。更重要的是,你可以配置 Webpack 不仅要解决类似JavaScript的模块,还要解决CSS,图像,HTML等问题。特别让我兴奋的是什么 Webpack ,您可以在同一个应用程序中组合已编译和动态加载的模块。因此,可以获得真正的性能提升,特别是在HTTP / 1.x上。你是怎么做到的我在这里举例说明 http://dsheiko.com/weblog/state-of-javascript-modules-2017/ 作为捆绑者的替代品,人们可以想到 Rollup.js ( https://rollupjs.org/ ),它在编译期间优化代码,但剥离所有找到的未使用的块。
Webpack
Browserfy
require
import
Rollup.js
对于 AMD , 代替 RequireJS 一个人可以去当地人 ES2016 module system ,但装满了 System.js ( https://github.com/systemjs/systemjs )
AMD
RequireJS
ES2016 module system
System.js
此外,我会指出这一点 npm 通常用作自动化工具 grunt 要么 gulp 。查看 https://docs.npmjs.com/misc/scripts 。我个人现在使用npm脚本只避免使用其他自动化工具,尽管在过去我非常喜欢 grunt 。使用其他工具,您必须依赖无数的软件包插件,这些插件通常写得不好而且没有被主动维护。 npm 知道它的包,所以你可以通过以下名称调用任何本地安装的包:
npm
grunt
gulp
{ "scripts": { "start": "npm http-server" }, "devDependencies": { "http-server": "^0.10.0" } }
实际上,如果软件包支持CLI,您通常不需要任何插件。
什么是webpack&的WebPack-dev的服务器?官方文档说它是一个模块捆绑器,但对我来说它只是一个任务运行器。有什么不同?
的WebPack-DEV-服务器 是一个实时重装Web服务器 的WebPack 开发人员用它来获得他们所做的即时反馈。它应该只在开发期间使用。
这个项目受到了很大的启发 nof5 单元测试工具。
的WebPack 顾名思义将创建一个 单 的 包 强> 年龄 的 卷筒纸 强> 。软件包将被最小化,并合并为一个文件(我们仍然生活在HTTP 1.1时代)。 的WebPack 组合资源(JavaScript,CSS,图像)和注入它们的魔力是这样的: <script src="assets/bundle.js"></script> 。
<script src="assets/bundle.js"></script>
它也可以被称为 模块捆绑器 因为它必须了解模块依赖关系,以及如何获取依赖关系并将它们捆绑在一起。
你会在哪里使用browserify?我们不能对node / ES6导入做同样的事情吗?
你可以用 Browserify 在你将使用的完全相同的任务 的WebPack 。 - 的WebPack 但是更紧凑。
请注意 ES6模块加载器功能 在 Webpack2 正在使用 System.import ,本地没有一个浏览器支持。
什么时候你会在npm +插件上使用gulp / grunt?
您可以 忘记 Gulp,Grunt,Brokoli,Brunch和Bower 。直接使用npm命令行脚本,你可以在这里删除这些额外的包 吞 :
var gulp = require('gulp'), minifyCSS = require('gulp-minify-css'), sass = require('gulp-sass'), browserify = require('gulp-browserify'), uglify = require('gulp-uglify'), rename = require('gulp-rename'), jshint = require('gulp-jshint'), jshintStyle = require('jshint-stylish'), replace = require('gulp-replace'), notify = require('gulp-notify'),
你可以使用 吞 和 咕噜 为项目创建配置文件时配置文件生成器。这样您就不需要安装了 约曼 或类似的工具。
纱线是最近的包装经理,可能值得一提。所以,那里: https://yarnpkg.com/
Afaik,它可以获取npm和bower依赖关系,并具有其他赞赏的功能。
你可以找到一些技术比较 npmcompare
比较browserify与grunt与gulp对比webpack
正如您所看到的,webpack得到了很好的维护,平均每4天推出一个新版本。 但Gulp似乎拥有最大的社区(在Github上有超过20K的明星) Grunt似乎有点被忽视(与其他人相比)
因此,如果需要选择一个而不是另一个,我会选择Gulp
关于npm的一个小注释:npm3尝试以平面方式安装依赖项
https://docs.npmjs.com/how-npm-works/npm3#npm-v3-dependency-resolution