前端工程化常见工具
-
- 代码拆分(Code Splitting) 使你可以将应用程序分解成可管理的代码块,可以按需加载,这意味着你的用户可以快速获取交互性的网站,而不必等到整个应用程序下载和解析完成。当然你可以手动来完成这项工作,那么祝你好运。
- 静态资源(Static assets) 如图像和 CSS 可以导入到你的应用程序中,而且还能够被作为依赖图中的另一个节点。再也不用关心你的文件是否放在正确的文件夹中,再也不用为文件 URL 增添 hash 而使用 hack 脚本,因为 webpack 会帮我们处理这些事情。
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
}
};
-
- 对于应用使用 webpack,对于类库使用 Rollup
- tree-shaking: 除了使用 ES6 模块之外,Rollup 还静态分析代码中的 import,并将排除任何未实际使用的代码。这允许您架构于现有工具和模块之上,而不会增加额外的依赖或使项目的大小膨胀。
// rollup.config.js
import json from 'rollup-plugin-json';
export default {
input: 'src/main.js',
output: {
file: 'bundle.js',
format: 'cjs'
},
plugins: [ json() ]
};
-
- 基于流的自动化构建工具
- gulpfile.js
- 管道 pipe
- task
var gulp = require('gulp');
gulp.task('default', function() {
// 将你的默认的任务代码放在这
});
-
- 自动化构建工具
- gruntfile.js
<!-- Project configuration. -->
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: 'src/<%= pkg.name %>.js',
dest: 'build/<%= pkg.name %>.min.js'
}
}
});
- bower - A package manager for the web (包管理器)
-
yeoman - THE WEB’S SCAFFOLDING TOOL FOR MODERN WEBAPPS
- 脚手架工具
- browserify - 浏览器加载 Node.js 模块
- parcel - 快速,零配置的 Web 应用程序打包器
- 从你的应用程序的入口 HTML 文件开始。Parcel 将从入口文件开始分析依赖关系来为你构建整个应用程序。