当前位置: 首页 > news >正文

Yeoman_Bower_Grunt

Yeoman安装

在Web项目的立项阶段使用yeoman来生成项目文件,代码结构。

提供自动化开发流程的一整套工具
代码校验,测试,压缩

yeoman官网

npm install -g yo

需要安装
generator

运行

yo -v

按照步骤进行,如果报错找到不到的话,需要手动安装生成器generator。

例如:使用到angular项目:

    
npm install -g  generator-angular

官方生成器

Bower安装

库文件的版本管理

npm install bower

Grunt 安装

自动化,压缩,编译,单元测试,代码校验

npm install grunt-cli
npm install grunt

Yeoman创建项目

以angular为例:

yo angular myanuglar  // 创建

yeoman是以Node为基础构建的项目文件

Bower应用

bower是一个web的包管理器
bower管理的包的源码都是托管在github网站,所以尽量使用git命令行控制来使用指令。
默认目录为:bower_components

bower install jquery

使用其它方式来安装包:

1:github短名称

bower install jquery/jquery

2:使用github完整目录安装

bower install https://github.com/jquery/jquery.git

3:直接通过URL来进行安装

bower install http://cdn.bootcss.com/jquery/3.1.0/jquery.min.js

使用搜索的时候: jquery owner:jquery 查询当前团队开发的项目。

生成bower.json配置文件

bower init

bower.json其中devDependencies字段开发环境

bower install angular --save-dev     // 安装并添加到开发环境dev字段中
bower install angular --save         // 添加到生成环境中的字段.

bower需要配合grunt来一起使用,单独使用局限于包的引用路径麻烦。

Grunt使用

三个基本概念task, target,options

Gruntfile.js文件:

module.exports = function(grunt){
    
    require('time-grunt')(grunt);
    
    require('load-grunt-tasks')(grunt); // 会自动寻找 package中 声明的grunt 全部加载进来
    
    let config = {
        app: 'app',
        dist: 'dist'
    }
    
    // 配置文件
    grunt.initConfig({
            
            // 压缩
            uglify: {
          options: {
            banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
          },
          build: {
            src: 'app/<%= pkg.name %>.js',
            dest: 'build/<%= pkg.name %>.min.js'
          }
        }
            
            jshint: {
          files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
          options: {
            globals: {
              jQuery: true
            }
          }
        }
            // 任务   编译 Less
        less: {
        build: {
          expand: true, // 动态编译
          cwd: 'less/',   // 所有的'src'里指定文件都是相对于这个属性指定的路径
          src: '['*.less']', // 相对与cwd路径下需要匹配的文件,这个地方是匹配所有的less文件
          dist: 'css/',
          ext: '.css'
        }
        },
        
        sass: {
        build: {
          expand: true, // 动态编译
          cwd: 'sass/',   // 所有的'src'里指定文件都是相对于这个属性指定的路径
          src: '['*.scss']', // 相对与cwd路径下需要匹配的文件,这个地方是匹配所有的less文件
          dist: 'sass/',
          ext: '.css'
        }
        },
        
        // 合并文件
        concat: {
              options: {
                // 定义一个用于插入合并输出文件之间的字符
                separator: ';'
              },
              dist: {
                // 将要被合并的文件
                src: ['src/**/*.js'],
                // 合并后的JS文件的存放位置
//                dest: 'dist/<%= pkg.name %>.js'
                    dest: 'dist/libs.js'
              }
            }

        // 检测
        watch: {
        files: ['less/**/*.less'], // 监听less文件夹下,所有less文件,以及所有目录下的less文件
        tasks: ['default'] // 当上面被监听的文件发生变化的时候会执行这个任务
        }
    });
    
    // 开启任务
    grunt.registerTask('default', ['less']);
    
}

相关文章:

  • Spring @Resource, @Autowired and @Inject 注入
  • 标准I/O和管道
  • 深入理解java的抽象类和接口(转载)
  • CentOS系统故障 | 一桩血案引发的容器存储驱动比较
  • 探针技术
  • DUBBO服务调用超时问题记录
  • html学习记录之表格、表单基础
  • JAVA API-----String类和StringBuffer类
  • redis 异常解决办法
  • 2016跨境电商五大物流模式盘点
  • .NET Framework 4.6.2改进了WPF和安全性
  • ubuntu 16.04 有道词典
  • AFNetworking 3.0 源码解读(四)之 AFURLResponseSerialization
  • 玩转Slot Machine
  • JavaScript之数组循环 forEach 循环输出数组元素
  • [case10]使用RSQL实现端到端的动态查询
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Brief introduction of how to 'Call, Apply and Bind'
  • jdbc就是这么简单
  • Python中eval与exec的使用及区别
  • springboot_database项目介绍
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • unity如何实现一个固定宽度的orthagraphic相机
  • Vue小说阅读器(仿追书神器)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 大数据与云计算学习:数据分析(二)
  • 大主子表关联的性能优化方法
  • 缓存与缓冲
  • ------- 计算机网络基础
  • 聊聊sentinel的DegradeSlot
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 说说动画卡顿的解决方案
  • 想写好前端,先练好内功
  • 译米田引理
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 国内开源镜像站点
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​flutter 代码混淆
  • ​如何在iOS手机上查看应用日志
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #考研#计算机文化知识1(局域网及网络互联)
  • (42)STM32——LCD显示屏实验笔记
  • (ZT)一个美国文科博士的YardLife
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (利用IDEA+Maven)定制属于自己的jar包
  • (算法)前K大的和
  • (一)UDP基本编程步骤
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)linux下的时间函数使用
  • .apk 成为历史!
  • .bat文件调用java类的main方法