1.gulp基本配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | var gulp = require( 'gulp' ), watch = require( 'gulp-watch' ), babel = require( 'gulp-babel' ); var browserify = require( 'gulp-browserify' ); var SourceMap = require( 'gulp-sourcemaps' ); var SourceMapSupport = require( 'gulp-sourcemaps-support' ); gulp.task( 'react' , () => { gulp.src( 'index.js' ) .pipe(SourceMap.init()) //sourcemap只是为了生成代码资源的map .pipe(babel({ presets: [ 'es2015' , 'es2016' , 'es2017' , 'stage-0' , 'react' ], plugins: [ 'transform-decorators-legacy' ] })) //这里编译es6代码,包括编译react模板 .pipe(browserify({ insertGlobals : true , debug : !gulp.env.production })) //browserify 的作用就是把require资源从node_modules 里拿出来,然后打包进去到输出的js,如果没有这个插件,那么你不能看到import进来的东西,import的东西没有被打包进去 .pipe(SourceMap.write( '.' )) .pipe(gulp.dest( 'build' )) }); gulp.task( 'default' , () => { return watch( './index.js' , function () { gulp.run( 'react' ); }); }); |
2.优化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | var gulp = require( 'gulp' ), watch = require( 'gulp-watch' ), babel = require( 'gulp-babel' ); var envify = require( 'gulp-envify' ); var browserify = require( 'gulp-browserify' ); var SourceMap = require( 'gulp-sourcemaps' ); var uglify = require( 'gulp-uglifyjs' ); var SourceMapSupport = require( 'gulp-sourcemaps-support' ); gulp.task( 'react' , () => { var environment = { NODE_ENV: 'production' }; gulp.src( 'index.js' ) .pipe(SourceMap.init()) .pipe(babel({ presets: [ 'es2015' , 'es2016' , 'es2017' , 'stage-0' , 'react' ], plugins: [ 'transform-decorators-legacy' ] })) .pipe(browserify({ insertGlobals: true , debug: !gulp.env.production, transformKey: 'production' })) .pipe(envify(environment)) //加入这个插件可以修改代码中的环境等于production .pipe(uglify()) .pipe(SourceMap.write( '.' )) .pipe(gulp.dest( 'build' )) }); gulp.task( 'default' , () => { return watch( './index.js' , function () { gulp.run( 'react' ); }); }); |
前端工程师、程序员
分类:
nodejs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~