GithubHelp home page GithubHelp logo

generate / generate-package Goto Github PK

View Code? Open in Web Editor NEW
18.0 3.0 0.0 792 KB

Use as a sub-generator or plugin in your generator to create a package.json for a project. Or install globally and run with Generate's CLI.

Home Page: https://github.com/generate/getting-started

License: MIT License

JavaScript 100.00%
scaffold generator project-template cli generate project scaffolding new init create

generate-package's Introduction

Generate a package.json from a pre-defined or user-defined template. This generator can be used from the command line when globally installed, or as a plugin or sub-generator in your own generator.

generate-package

NPM version NPM monthly downloads Build Status

generate-package demo

Table of Contents - [Quickstart](#quickstart) - [Getting started](#getting-started) * [Install](#install) * [CLI](#cli) * [Help](#help) - [Next steps](#next-steps) * [Running unit tests](#running-unit-tests) * [Publishing your generator](#publishing-your-generator) - [About](#about) * [What is "Generate"?](#what-is-generate) * [Related projects](#related-projects) * [Community](#community) * [Contributors](#contributors) * [Contributing](#contributing) * [Running tests](#running-tests) * [Author](#author) * [License](#license)

(TOC generated by verb using markdown-toc)

Quickstart

Install generate and generate-package:

$ npm install --global generate generate-package

Generate a package.json in the current working directory:

$ gen package

Getting started

Install

Installing the CLI

To run the readme generator from the command line, you'll need to install Generate globally first. You can do that now with the following command:

$ npm install --global generate

This adds the gen command to your system path, allowing it to be run from any directory.

Install generate-package

Install this module with the following command:

$ npm install --global generate-package

CLI

Run this generator's default task with the following command:

$ gen readme

What you should see in the terminal

If completed successfully, you should see both starting and finished events in the terminal, like the following:

[00:44:21] starting ...
...
[00:44:22] finished ✔

If you do not see one or both of those events, please let us know about it.

Help

To see a general help menu and available commands for Generate's CLI, run:

$ gen help

Next steps

Running unit tests

It's never too early to begin running unit tests. When you're ready to get started, the following command will ensure the project's dependencies are installed then run all of the unit tests:

$ npm install && test

Publishing your generator

If you're tests are passing and you're ready to publish your generator to npm, you can do that now with the following command:

Are you sure you're ready?!

Let's go!

$ npm publish

About

What is "Generate"?

Generate is a command line tool and developer framework for scaffolding out new GitHub projects using generators and tasks.

Answers to prompts and the user's environment can be used to determine the templates, directories, files and contents to build. Support for gulp, base and assemble plugins, and much more.

For more information:

Related projects

  • generate-gitignore: Generate any local or global .gitignore file from the github/gitignore repository. Use from the command… more | homepage
  • generate-license: Generate a license file for a GitHub project. | homepage
  • generate-readme: Generate a README.md using answers to prompts and data from the environment, like package.json, .git… [more](https://github.com/generate/generate-readme) | [homepage](https://github.com/generate/generate-readme "Generate a README.md using answers to prompts and data from the environment, likepackage.json,.git` config, etc. This generator can be run by command line if Generate is installed globally, or you can use this as a plugin or sub-generator in your own")

Community

Are you using Generate in your project? Have you published a generator and want to share your project with the world?

Here are some suggestions!

  • If you get like Generate and want to tweet about it, please feel free to mention @generatejs or use the #generatejs hashtag
  • Show your love by starring Generate and generate-package
  • Get implementation help on StackOverflow (please use the generatejs tag in questions)
  • Gitter Discuss Generate with us on Gitter
  • If you publish an generator, thank you! To make your project as discoverable as possible, please add the keyword generategenerator to package.json.

Contributors

Commits Contributor
95 jonschlinkert
1 dawsonbotsford
1 jamen

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Running tests

Install dev dependencies:

$ npm install && npm test

Author

Jon Schlinkert

License

Copyright © 2017, Jon Schlinkert. Released under the MIT License.


This file was generated by verb-generate-readme, v0.4.2, on January 27, 2017.

generate-package's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

generate-package's Issues

utils.choose is not a function

missing gulp-choose-files maybe? :)

% ❯ gen package:choose                                                                                   July 17, 03:34:43
[03:35:06] starting generate
[03:35:07] ✔ running tasks: [ 'package:choose' ]
[03:35:08] starting package 
TypeError: utils.choose is not a function
    at Task.fn (/home/charlike/.nvm/versions/node/v6.3.0/lib/node_modules/generate-package/generator.js:82:19)

empty author field + double ask for author name

Using generate-project and generate-generator, both have the problem, so i think comes from here. Problem also applies for header comment banner of templates like index.js and have ask for author.prop

% ❯ gen dest generator                                                                                     July 09, 16:18:26
[16:18:32] starting generate
[16:18:35] ✔ running tasks: [ 'dest', 'generator' ]
[16:18:35] starting generate.dest 
? Destination directory? chibo
[16:19:38] finished generate.dest 1m
[16:19:39] starting generate.generator 
? Project name? chibo
? Project description? foo bar baz
? Project version? 0.1.0
? Author's GitHub username? tunnckoCore
? Author's name? Charlike Mike Reagent
? Author's URL? tunnckocore.tk
? Author's name?  Charlike Mike Reagent
[16:20:43] finished generate.generator 1m
~  
% ❯

It would be better to try to gather author data from git and compose the author string (as in verb).

{
  "name": "chibo",
  "description": "foo bar baz",
  "version": "0.1.0",
  "homepage": "https://github.com/tunnckoCore/chibo",
  "author": " ()",
  "repository": "tunnckoCore/chibo",
  "bugs": {
    "url": "https://github.com/tunnckoCore/chibo/issues"
  },
  "license": "MIT",
  "files": [
    "index.js"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=0.10.0"
  },
  "scripts": {
    "test": "mocha"
  },
  "keywords": [
    "chibo"
  ]
}

Uppercase letters in the value of "name" parameter (validation)

1. Summary

If I generate my package.json use generate-package:

    value "name" parameter may contain uppercase letters.

See official npm docs:

New packages must not have uppercase letters in the name.

2. Environment

  • Windows 10 Enterprise LTSB 64-bit EN,
  • Node.js 9.6.0,
  • generate 0.14.0.

3. Steps to reproduce

I install generate and generate-package → I create blank folder D:\SashaDemoRepositories\SashaNpmInitVsGeneratePackage → I run gen package command:

D:\SashaDemoRepositories\SashaNpmInitVsGeneratePackage>gen package
[09:59:35] starting generate
[09:59:44] √ running tasks: [ 'package' ]
[09:59:47] starting package
? Project description? Demo generate-package
? Author's name? Sasha Chernykh
? Author's URL? https://vk.com/hair_in_the_wind
[10:00:13] finished package √ 26s

I get package.json:

{
  "name": "SashaNpmInitVsGeneratePackage",
  "description": "Demo generate-package",
  "version": "0.1.0",
  "homepage": "https://github.com/Kristinita/SashaNpmInitVsGeneratePackage",
  "author": "Sasha Chernykh (https://vk.com/hair_in_the_wind)",
  "repository": "Kristinita/SashaNpmInitVsGeneratePackage",
  "bugs": {
    "url": "https://github.com/Kristinita/SashaNpmInitVsGeneratePackage/issues"
  },
  "license": "MIT",
  "engines": {
    "node": ">=4"
  },
  "scripts": {
    "test": "mocha"
  },
  "keywords": [
    "SashaNpmInitVsGeneratePackage"
  ]
}

4. Expected behavior

Lowercase:

"name": "sashanpminitvsgeneratepackage"

5. Actual behavior

Uppercase letters:

"name": "SashaNpmInitVsGeneratePackage"

Thanks.

gen package or gen help throws error

I am a newbie, please help.
I just installed Node.js v6.9.1 on my windows machine

npm install --global generate and npm install --global generate-package were successful.

When I fire gen package or gen help it throws the following error:

C:\>gen help
[20:51:35] starting generate
[20:51:35] √ running tasks: [ 'defaults:help' ]
path.js:7
    throw new TypeError('Path must be a string. Received ' + inspect(path));
    ^

TypeError: Path must be a string. Received null
    at assertPath (path.js:7:11)
    at Object.resolve (path.js:186:7)
    at Function.resolve (C:\Users\admin\AppData\Roaming\npm\node_modules\generate\node_modules\parse-git-config\index.js
:116:15)
    at Function.parseSync [as sync] (C:\Users\admin\AppData\Roaming\npm\node_modules\generate\node_modules\parse-git-con
fig\index.js:79:24)
    at Schema.module.exports (C:\Users\admin\AppData\Roaming\npm\node_modules\generate\node_modules\expand-pkg\lib\expan
ders\git.js:13:36)
    at Schema.normalizeField (C:\Users\admin\AppData\Roaming\npm\node_modules\generate\node_modules\map-schema\index.js:
557:16)
    at Schema.update (C:\Users\admin\AppData\Roaming\npm\node_modules\generate\node_modules\map-schema\index.js:246:8)
    at Schema.module.exports (C:\Users\admin\AppData\Roaming\npm\node_modules\generate\node_modules\expand-pkg\lib\expan
ders\owner.js:14:10)
    at Schema.normalizeField (C:\Users\admin\AppData\Roaming\npm\node_modules\generate\node_modules\map-schema\index.js:
557:16)
    at Schema.normalize (C:\Users\admin\AppData\Roaming\npm\node_modules\generate\node_modules\map-schema\index.js:497:2
7)

feature: customizing templates

Generate makes it easy to override templates in general (by adding a custom template to the ~/templates directory).

I'd like to come up with a convention for easily extending templates as well. e.g. since package.json is an object, we should be able to find a way to allow users to customize the templates used in this generator, without having to overwrite them completely.

Here are a couple of ideas for solutions:

  1. Instead of loading all of the templates using app.src(), we can load them onto a template collection so that when this generator is used as a plugin, you would be able to get the template and modify it, or extend it and create a new one based on it.
  2. Support adding custom data to a specific property on app.cache.data. Then when we can just merge that object onto the template before rendering.

Any other ideas?

bug(validation): "repository" value format

1. Summary

If I generate package.json use generate-package:

    I get incorrect value of "repository" parameter.

2. Argumentation

See examples from official npm docs:

"repository" :
  { "type" : "git"
  , "url" : "https://github.com/npm/npm.git"
  }
"repository": "github:user/repo"

But not:

"repository": "user/repo",

3. Environment

  • Windows 10 Enterprise LTSB 64-bit EN,
  • Node.js 9.6.0,
  • generate 0.14.0.

4. Steps to reproduce

I install generate and generate-package → I create blank folder D:\SashaDemoRepositories\SashaNpmInitVsGeneratePackage → I run gen package command:

D:\SashaDemoRepositories\SashaNpmInitVsGeneratePackage>gen package
[09:59:35] starting generate
[09:59:44] √ running tasks: [ 'package' ]
[09:59:47] starting package
? Project description? Demo generate-package
? Author's name? Sasha Chernykh
? Author's URL? https://vk.com/hair_in_the_wind
[10:00:13] finished package √ 26s

I get package.json:

{
  "name": "SashaNpmInitVsGeneratePackage",
  "description": "Demo generate-package",
  "version": "0.1.0",
  "homepage": "https://github.com/Kristinita/SashaNpmInitVsGeneratePackage",
  "author": "Sasha Chernykh (https://vk.com/hair_in_the_wind)",
  "repository": "Kristinita/SashaNpmInitVsGeneratePackage",
  "bugs": {
    "url": "https://github.com/Kristinita/SashaNpmInitVsGeneratePackage/issues"
  },
  "license": "MIT",
  "engines": {
    "node": ">=4"
  },
  "scripts": {
    "test": "mocha"
  },
  "keywords": [
    "SashaNpmInitVsGeneratePackage"
  ]
}

5. Expected behavior

"repository": "github:Kristinita/SashaNpmInitVsGeneratePackage",

6. Actual behavior

"repository": "Kristinita/SashaNpmInitVsGeneratePackage",

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.