作业三 野性酷女 2023-01-05 14:21 28阅读 0赞 # 谈谈你对工程化的初步认识,结合你之前遇到过的问题说出三个以上工程化能够解决问题或者带来的价值。 # 前端工程化就是通过一定的标准和规范来提高开发效率的一种手段,一切一降低成本 质量保证,提高效率为目的 的都属于前段的工程化 * 解决重复的工作:上线前部署代码压缩文件打包文件等等 * 解决代码风格各个程序员不统一的 问题 * 解决部分功能需要等待后端的接口才能进行开发 * 解决无法使用模块化和组件化的代码 * 解决真正意义上实现了前后端的完全分离 # 2、你认为脚手架除了为我们创建项目结构,还有什么更深的意义? # 脚手架可以帮我们快速生成项目,统一代码风格,创建项目基础结构,给开发者提供约束和规范,有利于维护打包 # 编程题 # ## 1.概述脚手架实现的过程,并使用 NodeJS 完成一个自定义的小型脚手架工具 ## 工作原理:在生成项目的时候,会询问一些问题,根据预设的问题生成对应的项目 1. 创建项目QH-Demo 2. 创建pakeage.json yarn init --yes 3. 修改package.json { "name": "qh-demo", "version": "1.0.0", "bin": "cli.js", "main": "index.js", "license": "MIT" } 4. 安装依赖模块 yarn add inquirer //询问 yarn add ejs //添加模板引擎 5. 设置模板 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>qh-demo</title> </head> <body></body> </html> 6. 关联全局并测试 yarn link mkdir quheng cd quheng qu-demo 7. github地址 https://github.com/innerHTML123/qu-demo/ ## 2.使用Gulp完成项目自动化构建 ## 1. 创建目录并初始化pakeage.json mkdir qh-gulp cd qh-gulp yarn init --yes 2. 安装gulp模块 yarn add gulp --dev 3. 安装所需要的模块 yarn add 4. 添加gulpfile.js const { src, dest, parallel, series, watch } = require('gulp') const del = require('del') const browserSync = require('browser-sync') const loadPlugins = require('gulp-load-plugins') const plugins = loadPlugins() const bs = browserSync.create() const data = { menus: [ { name: 'Home', icon: 'aperture', link: 'index.html' }, { name: 'Features', link: 'features.html' }, { name: 'About', link: 'about.html' }, { name: 'Contact', link: '#', children: [ { name: 'Twitter', link: 'https://twitter.com/w_zce' }, { name: 'About', link: 'https://weibo.com/zceme' }, { name: 'divider' }, { name: 'About', link: 'https://github.com/zce' } ] } ], pkg: require('./package.json'), date: new Date() } const clean = () => { return del(['dist', 'temp']) } const style = () => { return src('src/assets/styles/*.scss', { base: 'src' }) .pipe(plugins.sass({ outputStyle: 'expanded' })) .pipe(dest('temp')) .pipe(bs.reload({ stream: true })) } const script = () => { return src('src/assets/scripts/*.js', { base: 'src' }) .pipe(plugins.babel({ presets: ['@babel/preset-env'] })) .pipe(dest('temp')) .pipe(bs.reload({ stream: true })) } const page = () => { return src('src/*.html', { base: 'src' }) .pipe(plugins.swig({ data, defaults: { cache: false } })) // 防止模板缓存导致页面不能及时更新 .pipe(dest('temp')) .pipe(bs.reload({ stream: true })) } const image = () => { return src('src/assets/images/**', { base: 'src' }) .pipe(plugins.imagemin()) .pipe(dest('dist')) } const font = () => { return src('src/assets/fonts/**', { base: 'src' }) .pipe(plugins.imagemin()) .pipe(dest('dist')) } const extra = () => { return src('public/**', { base: 'public' }) .pipe(dest('dist')) } const serve = () => { watch('src/assets/styles/*.scss', style) watch('src/assets/scripts/*.js', script) watch('src/*.html', page) // watch('src/assets/images/**', image) // watch('src/assets/fonts/**', font) // watch('public/**', extra) watch([ 'src/assets/images/**', 'src/assets/fonts/**', 'public/**' ], bs.reload) bs.init({ notify: false, port: 2080, // open: false, // files: 'dist/**', server: { baseDir: ['temp', 'src', 'public'], routes: { '/node_modules': 'node_modules' } } }) } const useref = () => { return src('temp/*.html', { base: 'temp' }) .pipe(plugins.useref({ searchPath: ['temp', '.'] })) // html js css .pipe(plugins.if(/\.js$/, plugins.uglify())) .pipe(plugins.if(/\.css$/, plugins.cleanCss())) .pipe(plugins.if(/\.html$/, plugins.htmlmin({ collapseWhitespace: true, minifyCSS: true, minifyJS: true }))) .pipe(dest('dist')) } const compile = parallel(style, script, page) // 上线之前执行的任务 const build = series( clean, parallel( series(compile, useref), image, font, extra ) ) const develop = series(compile, serve) module.exports = { clean, build, develop } 1. github 地址 https://github.com/innerHTML123/quheng-work-demo/
相关 第三次作业 1 ![1be13f378851425da7b31a1ef9c510b6.png][] 2 ![325fb379149c4bb99848a41b906e6ef8.png] 朱雀/ 2024年04月01日 13:25/ 0 赞/ 112 阅读
相关 计算机网络作业(三) 计算机网络作业(三) 1. (单选题)数据通信中的信道传输速率单位用bps 表示( A)。 A. 位/秒 B. K字节/秒 C. 字 比眉伴天荒/ 2024年03月26日 16:55/ 0 赞/ 72 阅读
相关 作业三 谈谈你对工程化的初步认识,结合你之前遇到过的问题说出三个以上工程化能够解决问题或者带来的价值。 前端工程化就是通过一定的标准和规范来提高开发效率的一种手段,一切一降低成本 野性酷女/ 2023年01月05日 14:21/ 0 赞/ 29 阅读
相关 extends作业三 public class 测试 { public static void main(String[] args) { Recta 朱雀/ 2022年06月07日 08:08/ 0 赞/ 167 阅读
相关 第三次作业 结对编程作业 <table> <tbody> <tr> <td>本次作业地址</td> <td><a href="https://edu.cnb 忘是亡心i/ 2022年01月11日 06:19/ 0 赞/ 361 阅读
相关 第三周作业 一.基础作业 本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。 例如:\[1, -2, 3 今天药忘吃喽~/ 2022年01月06日 07:11/ 0 赞/ 391 阅读
相关 第三次作业 ![1619643-20190328205955743-1413114076.png][] ![1619643-20190328205954074-480729028. Myth丶恋晨/ 2021年12月22日 08:21/ 0 赞/ 342 阅读
相关 第三次作业 1.自己的基本信息: 学号:2017\\\\\1015; 姓名:李昊 码云仓库地址:https://gitee.com/lihaolh/word\_freq 秒速五厘米/ 2021年12月22日 02:17/ 0 赞/ 376 阅读
相关 第三次作业 一.git 简介? 1.什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的 2.git的起源? 爱被打了一巴掌/ 2021年12月13日 19:57/ 0 赞/ 351 阅读
相关 第三周作业 基础作业 本周没上课,但是请大家不要忘记学习。 本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和 ╰+哭是因爲堅強的太久メ/ 2021年09月20日 11:16/ 0 赞/ 361 阅读
还没有评论,来说两句吧...