# generator-zl-fis3-less **Repository Path**: icode2017/generator-zl-fis3-less ## Basic Information - **Project Name**: generator-zl-fis3-less - **Description**: 基于 Yeoman 的 FIS3+LESS 主题模板样式快速编写框架生成器 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-01-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 Yeoman 的 FIS3 主题模板制作框架初始化脚手架 ## yeoman 简介 Yeoman 帮助我们创建项目,提供更好的工具来使我们的项目更多样化。详细参见: [Yeoman](http://yeoman.io/) ## 开发环境的安装 ### 安装 Nodejs * [32-bit下载](https://nodejs.org/dist/v6.9.4/node-v6.9.4-x86.msi) * [64-bit下载](https://nodejs.org/dist/v6.9.4/node-v6.9.4-x64.msi) ### 将 npm 源修改为淘宝的 npm 镜像 ``` npm install -g cnpm --registry=https://registry.npm.taobao.org ``` ### 安装支撑软件 ``` cnpm install -g fis3 less yo http-server cnpm install -g fis-parser-less-2.x fis3-deploy-replace fis3-deploy-zl-zip fis3-hook-relative cnpm install -g generator-zl-fis3-less ``` ### 使用生成器 ``` // 新建目录 zt1 zt1> yo zl-fis3-less zt1> cnpm install zt1> npm run dev // 发布并实时监测更新 zt1> npm run server // 启动 web 服务器 默认使用 3000 端口 // 在浏览器浏览: http://127.0.0.1:3000 ``` ## 生成器的使用 ```bash // 全局安装 Yeoman 框架 cnpm install -g yo cnpm install -g generator-zl-fis3-less 创建一个用于开发的目录 zl-fis3-less-test zl-fis3-less-test > yo zl-fis3-less zl-fis3-less-test > 查看目录 ``` ## 生成器的开发 ### generator-zl-fis3-less目录结构 ``` app |-- index.js 主入口文件 |-- templates 用于构建的模板(目录和文件) README.md 描述文件 package.json 包描述文件 ``` ### package.json 说明 ``` { "name": "generator-zl-fis3-less", "keywords": ["yeoman-generator"], } ``` > name 名称必须以 generator- 开头 > keywords 中必须含有 yeoman-generator 关键词 ### index.js 说明 ``` 'use strict'; var path = require('path'); var generators = require('yeoman-generator'); // 定制控制台日志的输入样式,可以非常的个性化 // https://github.com/chalk/chalk var chalk = require('chalk'); // 生成创建文件夹 // https://github.com/substack/node-mkdirp var mkdirp = require('mkdirp'); // 使用 generators.Base.extend 扩展 module.exports = generators.Base.extend({ // 构造器 constructor: function() { generators.Base.apply(this, arguments); }, // 初始化 initializing: function() { this.pkg = require('../package.json'); }, // 处理用户输入 prompting: { }, // 创建目录和文件 writing: { buildEnv: function() { // 将 templates 中的内容复制到 当前位置 this.fs.copyTpl(this.templatePath('.'), this.destinationPath('.'), this); }, assetsDirs: function() { // 创建 output 文件夹 // mkdirp.sync('output'); } }, // 安装默认依赖 install: function() { } }); ``` ### 开发与调试 1. 在生成器目录使用 npm link 或 cnpm link 进行挂载到全局 node_modules 2. 使用 npm unlink 或 cnpm unlink 来去消挂载 3. 使用 yo zl-fis3-less ```bash generator-zl-fis3-less> cnpm link generator-zl-fis3-less-test> yo zl-fis3-less ``` ### npm 发布 1. 到[http://www.npmjs.org](http://www.npmjs.org) 上注册用户 2. 使用 npm adduser 添加注册用户 3. 使用 npm login 登录 4. 使用 npm publish . 发布当前模块 注意事项: * package.json 中 name 名称必须在 npmjs 中是不重复的. 否则不能发布. 可以通过访问 https://npmjs.com/package/ 来验证模块名称是否可用. * 如果本地使用了淘宝的 NPM, 则在发布之前需要将切换 registry. 具体命令使用: npm config set registry http://registry.npmjs.org ## 本地快速开发调试 开发阶段,使用 cnpm link 将模块暴露在全局目录 node_modules 下 只需使用其中的一种即可. 1. npm link C:\Users\xxx\AppData\Roaming\npm\node_modules\generator-zl-fis3-less -> E:\sync\fis3\generator-zl-fis3-less 2. cnpm link C:\Program Files\nodejs\node_modules\generator-zl-fis3-less -> E:\sync\fis3\generator-zl-fis3-less 结束后, 使用 npm unlink 或 cnpm unlink 解除 ## package.json 1. name 名称必须是以 generator- 开头, 如: generator-zl-fis3-less 2. keywords 中必须要有 yeoman-generator 关键词. 如: "keywords": ["yeoman-generator"] ## GIT 操作 ```bash git init git remote add origin git@git.oschina.net:icode2017/generator-zl-fis3-less.git ``` ## NPM 发布时遇到的坑 因为本地采用了淘宝的 NPM,因此在 npm login 时是登录到 http://registry.npm.taobao.org/ 在发布之前,应当将 npm 的 registry 临时改为 http://registry.npmjs.org ``` npm config set registry http://registry.npmjs.org npm login Username: 输入你在npmjs.org上注册的用户名 Password: Email:(this IS public): npm publish . ``` 如果没有 npmjs.org 上的用户, 请移步到 [http://www.npmjs.org](http://www.npmjs.org) 上注册 参考: [http://www.07net01.com/2016/01/1179066.html](http://www.07net01.com/2016/01/1179066.html)