Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • 00:25
    github-actions[bot] labeled #309
  • 00:10
    mshima synchronize #314
  • 00:10

    mshima on fix_assertion

    Update environment.js (compare)

  • 00:07
    mshima labeled #273
  • 00:04
    mshima opened #314
  • 00:04

    mshima on fix_assertion

    Fix assertion. (compare)

  • 00:02

    mshima on main

    3.4.1 (compare)

  • Jun 23 23:55
    mshima closed #1303
  • Jun 23 23:54
    mshima labeled #1294
  • Jun 23 23:53
    mshima closed #1299
  • Jun 23 23:38
    mshima closed #308
  • Jun 23 19:13
    baconandon edited #1304
  • Jun 23 19:13
    baconandon labeled #1304
  • Jun 23 19:13
    baconandon opened #1304
  • Jun 23 08:46
    bgdopus labeled #1303
  • Jun 23 08:46
    bgdopus opened #1303
  • Jun 23 00:30
    github-actions[bot] labeled #298
  • Jun 21 00:33
    github-actions[bot] labeled #308
  • Jun 16 16:49
    Grewer edited #676
  • Jun 16 07:53
    Grewer opened #676
Marcelo Shima
Just tested and indeed it’s not environment fault.
Devin Fee
@mshima alright, i didn't know if yeoman didn't support local installs (for some weird reason).
Paul Bijan Coch
Heey everyone, if someone of you might be interested in a more visual approach of developing code with the help of reusable templates: I and my team have spent the last nine months with the development of https://app.generato.com/#/.
We wanted to have a visual approach to design projects,. write Templates in a text form and have the possibility to regenerate everything with the help of protected „own-code“ areas. We'd be so happy to get your feedback on this. Please try it out and hit me up on Intercom in the app itself, via email: paul.coch@generato.com, or simply right here. I'd love to hear what you have to say about it, what you like, what you don't like and how we can approve this to a better developer experience.
Hey everyone! I created a Yeoman generator and used the steps on the ‘Discovering Generators’ page to get the generator to be added to the website. For the generator, instead of using the naming convention of generator-your-unique-name, I named it using a scoped package name convention (I looked through you GitHub repository and saw that you added scoped package name support in your v2.4.0 release). However, my generator still isn’t showing up on the Yeoman website. Is there anything special/extra that I need to do for Yeoman to pick up my generator?
Maxime ROBIN
hello everyone, I'm tryiong to figure out if I can use yeoman using only yarn and no NPM for developping and usage, is there any way to achieve that, i think i've reached the end of internet
Maxime ROBIN
nvm i'm stupid it works, i didn't named my files and folder properly my bad, read the docs is the good way
Hi everyone. I have 'generator-a' which calls for 'generator-b' inside with command composeWith(). Now I want prompts of 'generator-b' to be displayed before prompts of 'generator-a'. Is it possible? What is the best way to achieve this? Thanks.
Minu Francis
Hi All
I am trying to incorporate yeoman in my oclif based CLI and I added the below lines as mentioned in the official documentation:
const env = createEnv()
env.register(require.resolve('../generators/component1'), oclif:component1);
//await super.generate('component1');
env.run('oclif:component1', (err: any, stdout: any, stderr: any) => {
But I seem to be getting this error:
TypeError: Class extends value #<Object> is not a constructor or null
at Object.<anonymous> (C:/Project/SynapseModernization/2020/cli/src/generators/component1.ts:5:42)) 439:23)
at Module.m._compile (C:/Project/SynapseModernization/2020/cli/node_modules/ts-node/src/index.ts:cli/node_modules/ts-node/src/index.ts:442:12)439:23) -environment/lib/store.js:47:27)
at Object.require.extensions.(anonymous function) [as .ts] (C:/Project/SynapseModernization/2020/js:71:39)cli/node_modules/ts-node/src/index.ts:442:12)
at Object.get [as oclif:component1] (C:/Project/SynapseModernization/2020/cli/node_modules/yeoman-environment/lib/store.js:47:27)
at Store.get (C:/Project/SynapseModernization/2020/cli/node_modules/yeoman-environment/lib/store.js:71:39)
at Environment.get (C:/Project/SynapseModernization/2020/cli/node_modules/yeoman-environment/lib/environment.js:540:48)
at Environment.create (C:/Project/SynapseModernization/2020/cli/node_modules/yeoman-environment/lib/environment.js:613:37)
at instantiateAndRun (C:/Project/SynapseModernization/2020/cli/node_modules/yeoman-environment/lib/environment.js:729:30)
at Environment.run (C:/Project/SynapseModernization/2020/cli/node_modules/yeoman-environment/lib/environment.js:758:12)
at CsGenerator.run (C:/Project/SynapseModernization/2020/cli/src/commands/component1.ts:18:9)
at CsGenerator._run (C:/Project/SynapseModernization/2020/cli/node_modules/@oclif/command/lib/command.js:35:31)
Any inputs are greatly appreciated
Minu Francis
And it occurs at env.run call
I would like to know if there is a process to re-scaffold a project (generated with and old version of a generator) with the latest version of the same generator in order to benefit from its latest improvement and also the latest version of the dependencies ? Timpically I am using the yo-office-generator and it comes now with a leaner project structure and dist directory plus some other linter improvements.
Bryan Stopp

Hey folks - question: i'm trying to use the yeoman-test createGenerator helper method. But i get:

TypeError: console.Console is not a constructor

    at new TerminalAdapter (/work/spaces/generator-test/node_modules/yeoman-environment/lib/adapter.js:24:39)

I tried to base my logic off of the tests here: https://github.com/yeoman/yeoman-test/blob/bb820da630d9d7ee8d9e7898848e896427e25675/test/helpers.js#L41-L70 but while that works when i run locally, my generator tests don't work.. Any thoughts?

@bstopp You can step into the yeoman-environment in node_modules, then print the options.console out.
The source code is here: https://github.com/yeoman/environment/blob/master/lib/adapter.js#L24
Bryan Stopp
Yeh - turns out the issue is with Jest. The global console variable/module that Jest creates doesn’t have the specie constructor that the Yeoman Environment expects. Hence the error. Amazingly enough someone committed a fix to Jest yesterday-ish and should make the next release. Heh.
Hhh, interesting.
Bryan Stopp
Bryan Stopp
Craziest thing. Took a while for my coworker to help me find. Thanks tho! 😆
np ✌️
Bryan Stopp
We are guessing if we moved to Mocha itd work no prob. But i started down the Jest path so dont want to rewrite w/o good reason
I would be willing to move to AVA https://github.com/avajs/ava .
Bryan Stopp
🤦‍♂️ im just getting the hang of Jest! 🤣
Both good, just choose your love.
Bryan Stopp
There's no way to determine whether or not an option was set as a default value vs actually passed on the CLI - is there?
Bryan Stopp
When you run composeWith is it aware of other generators running, such that, the same generator won't be executed twice? So i have generator A, and generator B, and both call composeWith('Generator Z') with the same target output folder, it only runs Generator Z once?
How does one get to use ES6 module import/export syntax with yeoman?

Hello all, I have started to use yeoman to generate a project and had little issues so far aside from testing. Writing tests is something I'm still learning about but the issue I'm having I just can't seem to make sense of a solution or find more relevant information online or on the docs, I wonder if someone could help me since I'm really curious to know what can be done to solve it and would be a great lesson for me.

How to test this generator properly

The generator makes one or more requests to download a few .zip files, extracts them and copies them to a directory. This can take a variable amount of time and when I write a test to assert file presence what ends up happening is that the assertions occur while the files are still being downloaded.

The code of my generator is open source and can be found here: https://github.com/csalmeida/generator-hozokit/blob/generate-hozokit/generators/app/index.js

This is the test I attempted to write (tried a few more things but all of them have similar results).

'use strict';
const path = require('path');
const assert = require('yeoman-assert');
const helpers = require('yeoman-test');

describe('generator-hozokit:app', () => {
  beforeAll(() => {
    return helpers
      .run(path.join(__dirname, '../generators/app'))
      .withPrompts({ projectName: 'Hozokit Test', installWordpress: false })
      .then(function() {
        // Checks that Hozokit was successfully extracted and present.
        assert.file(['../hozokit-test/wp-content/themes/hozokit-test', '../hozokit-test/wp-content/themes/hozokit-test/index.php', '../hozokit-test/wp-content/themes/hozokit-test/templates/base.twig']);

        // Checks that Wordpres has not been installed.
        assert.noFile(['wp-login.php', 'index.php', 'wp-includes']);

        // Checks that no zip files remain on the system.

It also seems that the examples in the docs are written in Mocha but the generator ships with Jest?

Any help from someone experienced in this would be deeply appreciated! 🙏

Hi, I finally installed yeoman, but I get these warning / issues from the npm install:

npm install --global yo
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated cross-spawn-async@2.2.5: cross-spawn no longer requires a build toolchain, use it instead
npm WARN deprecated request@2.88.2: request has been deprecated, see request/request#3142
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated axios@0.18.1: Critical security vulnerability fixed in v0.21.1. For more information, see axios/axios#3410

added 728 packages, and audited 729 packages in 35s

34 packages are looking for funding
run npm fund for details

4 high severity vulnerabilities

(Sorry about the formatting, I haven't done this before)
Is there a fix for addressing the depreciated packages? I don't want to use yeoman with those vulnerabilities.
Chris Granade
@pjmattingly Looking at axios/axios#3410, it seems like they only pushed the fix in v0.21.1 two days ago?
@cgranade Hi Chris, thanks for responding. I'm glad to see they're working on a fix. Is there anything I can do in the mean-time to work with it, before the fix is published?
I want to be sure I'm doing my due diligence, since I'm working on a project for my University as a graduate project.
Hello, is it possibile to wait for this.fs.copy to finish before running other code? I want to replace some placeholder in the files but they still don't exist when my code runs.

@y-chen the way I do this is with a regEx for instance

this.destinationPath('/index.html'), {
    process: function (content) {
var regExTitle = new RegExp('title', 'g');

var newContent = content 
.replace(regExTitle, 'content you wish to add to file');
return newContent;

Hope this helps if your question has not already been answered

Not sure if this is possible but is there a way of copying files from a URL rather than a local directory. the reason I would like to do this is so I can keep the templates updated on git for instance. Thanks
Bryan Stopp
Is there an updated link to the Yeoman Test API documentation? The link off of this page (https://yeoman.io/authoring/testing.html) still links to v2.7 - and the current release is 5.0
1 reply
Documentation still says the target directory is passed to the promise, but now it's a RunResult object...
Velten Heyn
Hi there, I'm trying to use the yeoman cli yo my-template -o . --force to force update a template. But it is asking me all the questions for initialization again (eg. projectname ...). Also the ones which are stored in a .yo-rc.json . Do I have to adapt the template to be able to work with the force argument?
Bryan Stopp
This message was deleted
Andy Freidenfelds
im using yeoman-generator version 5.2.0 ... in the writing(){...} block im trying to run this.npmInstall(deps.dev, { 'save-dev': true }); but its saying that this.npmInstall is not a function. did the api change?
Andy Freidenfelds
seems like it. someone should really update the docs. :smile:
Hello all, I have built a pretty huge Generator for personal use. I have the main generator that gives the user the option to run a sub-generator. I then have a number of sub-generators that use the same prompts and a number of functions in the wright function that are the same across all generators. My question is, is there a way to modulate my generator so I can have one place to update functions/prompts that would take effect across all sub-generators but would only require one file update. if someone could point me in the direction of some documentation that would be great. Thanks in advance