1.0.0 • Published 3 years ago

octopus-gulp-cli v1.0.0

Weekly downloads
8
License
ISC
Repository
-
Last release
3 years ago

octopus-gulp

安装

全局安装octopus-gulp

npm install -g octopus-gulp

初始化项目

og create your-app

等待一段时间,octopus-gulp会帮您自动生成一个your-app的工作目录

cd your-app && npm install

打包

yarn build

本地开发

yarn serve

目录结构

├── src
│   ├── pages
|   |   ├── home
|   |   |   ├── images      # home页面图片资源
|   |   |   ├── js          # home页面js模块
|   |   |   ├── scss        # home页面图片资源
|   |   |   ├── home.html   
|   |   |   ├── home.js  
|   |   |   └── home.scss
|   |   └── ...             # 其他页面目录  
|   ├── assets              # 静态资源
|   ├── common
|   |   ├── images          # 公用图片
|   |   ├── js              # 公共js
|   |   └── style           # 公用
├── .browserslistrc         # 浏览器支持配置
├── .editorconfig           # IDE配置
├── postcss.config.js       # postcss config
├── gulpfile.js             # gulp配置            
├── README.md
└── package.json

项目简介

  • 基于gulp 的PC应用脚手架
  • 适用场景:PC端轻量化应用
  • 兼容性: 默认兼容至ie8+

技术方案

页面资源的引用

打包后的html文件会自动引入相应的js 文件, css文件

  • 默认 home.html 会自动引入home.js, home.scss
<!--dist/home.html-->
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="__STYLE__">
  <title>home</title>
</head>
<body>
  <div class="home">
    Home Page
  </div>
  <script src="__JS__"></script>
</body>
</html>
  • 其他公共资源需要单独引用

    引入reset.css 示例

<!--dist/home.html-->
<!--引入示例-->
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="__STYLE__">
  <link rel="stylesheet" href="__RESET_STYLE__"> // 引入资源
  <title>home</title>
</head>
<body>
  <div class="home">
    Home Page
  </div>
  <script src="__JS__"></script>
</body>
</html>

公共资源引入配置

/ 处理html
const handleHtml = () => {
  const { src, dest } = gulp
  return src(['.tmp/rev/**/*.json', './src/pages/**/*.html'])
    .pipe(replace('__STYLE__', function() {
      return `./css/${path.parse(this.file.path).name}.css`
    }))
    // TODO 按需引入公共style(可选)
    .pipe(replace('__RESET_STYLE__', function() {
      return `./css/reset.css`
    }))
    .pipe(replace('__JS__', function() {
      return `./js/${path.parse(this.file.path).name}.js`
    }))
    .pipe(revCollector({
      replaceReved: true,
    }))
    .pipe(flatten())
    .pipe(dest('./dist/'))
    .pipe(connect.reload())
}

图片资源

  1. 作为一个轻量级的PC应用, 你的所有图片资源建议在css 文件中作为背景图片引入
  2. 本项目实现了图片的base64的转化功能,你可以在gulpfile.js中设置临界点
// 能被转成base64 的最大文件大小
const IMG_LIMIT_SIZE = 600 * 1024

js 资源

  • 支持 EsModule
  • 支持 TreeShaking
  • 支持 SourceMap

热更新

  • 在server模式中,本项目实现了热更新,你对于任何js,css,html的改变都会引起页面的刷新
  • 默认端口: 2345