New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

generator-zl-wiki-init

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

generator-zl-wiki-init

基于 Yeoman 的 MDwiki 初始化脚手架

  • 1.0.2
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

基于 Yeoman 的 MDwiki 初始化脚手架

yeoman 简介

Yeoman 帮助我们创建项目,提供更好的工具来使我们的项目更多样化。详细参见: Yeoman

生成器的使用

// 全局安装 Yeoman 框架
cnpm install -g yo
 
cnpm install -g generator-zl-wiki-init

// 创建一个用于开发的目录 zl-wiki-init-test

zl-wiki-init-test > yo zl-wiki-init
zl-wiki-init-test > dir //查看目录

生成的目录文件说明

参见:ex8-zt-template

生成器的开发

generator-zl-wiki-init目录结构

app
 |-- index.js   主入口文件
 |-- templates  用于构建的模板(目录和文件)
README.md		描述文件
package.json	包描述文件

package.json 说明

{
    "name": "generator-zl-wiki-init",
    "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.copy(this.templatePath('.'), this.destinationPath('.'));
        },
        assetsDirs: function() {
			// 创建 output 文件夹
            // mkdirp.sync('output');
        }
    },
	// 安装默认依赖
    install: function() {

    }
});

开发与调试

  1. 在生成器目录使用 npm link 或 cnpm link 进行挂载到全局 node_modules
  2. 使用 npm unlink 或 cnpm unlink 来去消挂载
  3. 使用 yo zl-wiki-init 来验证脚手架结果
generator-zl-wiki-init> cnpm link

generator-zl-wiki-init-test> yo zl-wiki-init

npm 发布

  1. 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-wiki-init -> E:\sync\fis3\generator-zl-wiki-init
 2. cnpm link
    C:\Program Files\nodejs\node_modules\generator-zl-wiki-init -> E:\sync\fis3\generator-zl-wiki-init

 结束后, 使用 npm unlink 或 cnpm unlink 解除

package.json

  1. name 名称必须是以 generator- 开头, 如: generator-zl-wiki-init
  2. keywords 中必须要有 yeoman-generator 关键词. 如: "keywords": ["yeoman-generator"]

GIT 操作

git init
git remote add origin git@git.oschina.net:icode2017/generator-zl-wiki-init.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.07net01.com/2016/01/1179066.html

Keywords

FAQs

Package last updated on 14 Feb 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc