We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在「基于 gulp 的前端构建」中,我尝试使用 gulp 来构建前端项目,其中]使用 requirejs 来做模块加载器。但由于 requirejs 的路径问题使得打包起来有点麻烦,再加上它的 amd 写法引入有点不优雅,于是尝试使用 webpack 替代 requirejs,webpack 支持 amd、commonJS 甚至 ES6 写法,其中如果你经常编写 Grunt 或 gulp 就一定对 commonJS 不陌生。
gulp
webpack
接下来的内容跟之前用 gulp 构建的思路大致相同,其中只是将 requirejs 打包替换成了 webpack 打包。变化比较多的就是命令增多了,原因接下来会说到。
添加了两个关于 webpack 的文件,一个用于开发阶段,一个用于打包上线阶段。
└─ gulp/ # gulp配置目录 ├─ tasks # 任务配置目录 ├─ image.js # 图片配置 ├─ other.js # 其它配置 ├─ script.js # 脚本配置 ├─ style.js # 样式配置 └─ view.js # 页面配置 ├─ gulp.config.js # gulp配置文件 ├─ webpack.config.js # webpack开发配置文件 └─ webpack.production.config.js # webpack上线配置文件
参考:「gulp + webpack 构建多页面前端项目」。
这里增加了几条命令,其中不自动刷新浏览器的命令和自动刷新浏览器的命令各有两套。有的人喜欢改动文件后自己手动刷新浏览器,而有的人则喜欢浏览器根据文件改动自动刷新,这里都有。
输入 gulp watch 便会生成可运行的代码,但是只要其中一个 js 文件改变 webpack 都会把全部的 js 文件都重新编译一遍,如果 js 文件数量很多的话,那等待的时间也会有点久。
gulp watch
js
需注意的是,得按照先后顺序先运行 gulp dev,然后再运行 gulp webpack。原因是 gulp dev 里包含了删除 dist 目录的所有代码。
gulp dev
gulp webpack
dist
这里因为 gulp 的监听与 webpack 的监听会起冲突,所以需要打开两个 console。gulp dev 监听 html 和 css 文件的改动,gulp webpack 监听 js 文件的改动。这样解决了上一条命令中的性能问题,它只会去编译修改过的 js 文件而不是全部。但是由于它需要打开两个 console,所以如果 js 文件数量不是很多的话可以考虑用 gulp watch。
console
效果图如下:
包含了 gulp dev 的功能,然后会自动打开 127.0.0.1:3000 ,并监听文件的改动自动刷新浏览器。
127.0.0.1:3000
需注意的是,得按照先后顺序先运行 gulp serve,然后再运行 gulp webpack。
gulp serve
包含了 gulp dev & gulp webpack 的功能,并自动刷新浏览器。
gulp dev & gulp webpack
输入 gulp build 命令后最终生成的代码依然在 dist 目录下,也就是说在开发阶段与上线打包阶段构建生成的代码都在同一个目录下,只不过在开发阶段代码是未进行合并压缩,上线打包阶段代码是经过合并压缩打上 hash 戳的。
gulp build
其中 webpack.production.config.js 跟开发阶段的 webpack.config.js 有些区别,主要是不包含了 sourcemap,还有把 js 代码压缩了。
webpack.production.config.js
webpack.config.js
gulp.task('webpack:build', plugins.shell.task([ 'webpack --process --colors --config gulp/webpack.production.config.js' ]));
The text was updated successfully, but these errors were encountered:
No branches or pull requests
前言
在「基于 gulp 的前端构建」中,我尝试使用
gulp
来构建前端项目,其中]使用 requirejs 来做模块加载器。但由于 requirejs 的路径问题使得打包起来有点麻烦,再加上它的 amd 写法引入有点不优雅,于是尝试使用webpack
替代 requirejs,webpack 支持 amd、commonJS 甚至 ES6 写法,其中如果你经常编写 Grunt 或 gulp 就一定对 commonJS 不陌生。接下来的内容跟之前用 gulp 构建的思路大致相同,其中只是将 requirejs 打包替换成了 webpack 打包。变化比较多的就是命令增多了,原因接下来会说到。
gulp & webpack 目录
添加了两个关于 webpack 的文件,一个用于开发阶段,一个用于打包上线阶段。
开发阶段
这里增加了几条命令,其中不自动刷新浏览器的命令和自动刷新浏览器的命令各有两套。有的人喜欢改动文件后自己手动刷新浏览器,而有的人则喜欢浏览器根据文件改动自动刷新,这里都有。
不自动刷新浏览器的命令
gulp watch
输入
gulp watch
便会生成可运行的代码,但是只要其中一个js
文件改变 webpack 都会把全部的 js 文件都重新编译一遍,如果 js 文件数量很多的话,那等待的时间也会有点久。gulp dev & gulp webpack
这里因为 gulp 的监听与 webpack 的监听会起冲突,所以需要打开两个
console
。gulp dev
监听 html 和 css 文件的改动,gulp webpack
监听 js 文件的改动。这样解决了上一条命令中的性能问题,它只会去编译修改过的 js 文件而不是全部。但是由于它需要打开两个 console,所以如果 js 文件数量不是很多的话可以考虑用gulp watch
。效果图如下:
自动刷新浏览器的命令
gulp browser
包含了
gulp dev
的功能,然后会自动打开127.0.0.1:3000
,并监听文件的改动自动刷新浏览器。gulp serve & gulp webpack
包含了
gulp dev & gulp webpack
的功能,并自动刷新浏览器。上线阶段
输入
gulp build
命令后最终生成的代码依然在dist
目录下,也就是说在开发阶段与上线打包阶段构建生成的代码都在同一个目录下,只不过在开发阶段代码是未进行合并压缩,上线打包阶段代码是经过合并压缩打上 hash 戳的。其中
webpack.production.config.js
跟开发阶段的webpack.config.js
有些区别,主要是不包含了 sourcemap,还有把 js 代码压缩了。The text was updated successfully, but these errors were encountered: