Skip to content
This repository was archived by the owner on Feb 7, 2023. It is now read-only.
This repository was archived by the owner on Feb 7, 2023. It is now read-only.

Serving patternlab doesn't seem to work correctly from a gulp shell task #391

Description

@zorida

Whenever i try to use Gulp with gulpfile.js in the project root to serve patternlab, whose folder is placed at first level inside the project (i.e. in '[project folder]/styleguide'), i manage to generate (build) the patterns, but not to serve them.

$ gulp pl-serve
[17:30:33] Using gulpfile ~/[foldername]/gulpfile.js
[17:30:33] Starting 'pl-serve'...

events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: Command failed: php core/console -s --with-watch

    at ChildProcess.exithandler (child_process.js:204:12)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:886:16)
    at Socket.<anonymous> (internal/child_process.js:342:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:501:12)

my code inside the gulpfile.js related to the 'pl-serve' task:

gulp.task('pl-serve', function() {
  var options = {
    continueOnError: false, // default = false, true means don't emit error event
    pipeStdout: false, // default = false, true means stdout is written to file.contents
    customTemplatingThing: "test" // content passed to gutil.template()
  };
  return gulp.src('./styleguide')
      .pipe(exec('php core/console -s --with-watch', options)).pipe(exec.reporter());
});

I tried the following:
using only one command i.e. exec('php styleguide/core/console -s --with-watch' ) ;
using the expression for consecutive commands i.e. exec('(cd styleguide;php core/console -s --with-watch)' ) with and without round brackets;
replacing -s with --server;
using the currently deprecated gulp-shell extension instead of gulp-exec;
changing styleguide with './styleguide' or './styleguide/';
build the project under Windows 10 and Ubuntu Linux 16.04, currently developing under the second one.

if I use the terminal to move inside styleguide folder, and type 'php core/console -s --with-watch', the site is generated and served on the local host, and patternlab seems able to correctly detect changes in .twig files.

This works instead, and builds the site if called by typing gulp pl from the cmd line:

gulp.task('pl', function() {
  var options = {
    continueOnError: false, // default = false, true means don't emit error event
    pipeStdout: false, // default = false, true means stdout is written to file.contents
    customTemplatingThing: "test" // content passed to gutil.template()
  };
  return gulp.src('.')
      .pipe(exec('(cd styleguide; php core/console --generate)', options)).pipe(exec.reporter());
});

Maybe I'm doing something wrong, I used PL both in node and php versions and now I can't get it to work from there. It is not mandatory, but it could be useful.
Any help would be appreciated. Thanks in advance.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions