Tailwind v2 and Sage 9

Has anyone gotten Tailwind v2 working with Sage 9?

I am on it right now, unfortunately without success.
Read here why.
I’ll notify you when i’m resolving this issue.

1 Like

I also would love to get Tailwind 2.0 running with Sage 9.

After upgrading to 2.0 via:

npm install tailwindcss@latest postcss@latest autoprefixer@latest

and using Node 12.
yarn && yarn build errors:

 ERROR  Failed to compile with 2 errors                                                                                                                                   5:28:39 PM

 error  in ./resources/assets/styles/main.scss

Module build failed: ModuleBuildError: Module build failed: ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'plugins'. These properties are valid:
   object { postcssOptions?, execute?, sourceMap? }
    at validate (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/schema-utils/dist/validate.js:104:11)
    at Object.loader (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/postcss-loader/dist/index.js:43:29)
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/webpack/lib/NormalModule.js:195:19
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:233:18

 @ multi ./scripts/main.js ./styles/main.scss

 error  in ./resources/assets/styles/main.scss

Module build failed: ModuleBuildError: Module build failed: ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'plugins'. These properties are valid:
   object { postcssOptions?, execute?, sourceMap? }
    at validate (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/schema-utils/dist/validate.js:104:11)
    at Object.loader (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/postcss-loader/dist/index.js:43:29)
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/webpack/lib/NormalModule.js:195:19
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:233:18

This feels a little like hijacking because I haven’t tried yet with Sage 9, but if it’s any help I managed to get it working on Sage 10 (which btw i’ve been using for a while in production sites with zero issues) by upgrading Laravel Mix to 6.0.0-beta.14

No worries, I’ve been thinking of jumping into Sage 10 too. I’m just warry with little documentation. How was the learning experience for you?

Hmm, good to know. I am not quite ready to get on Sage 10.
Any suggestions how what may work with Sage 9?

@christianmagill It has been great! I wouldn’t consider myself a PHP expert and had no previous experience with laravel / blade templating, but it feels like a great and stable framework for expanding my knowledge of the language, much like when I first adopted Sage as my to-go theme. Of course, the lack of documentation sometimes has lead me to hours of browsing github issues and trial/error, but I count those as growing pains :stuck_out_tongue: (Also, I wouldn’t dare to venture yet on a Sage 9 > 10 migration).

The setup process is fairly straightforward and you have a functional theme from the beginning with composer create-project roots/sage your-theme dev-10.0.0-dev. There’s some tinkering if you want to use Tailwind and its built-in purge instead of Bootstrap and PurgeCSS which come out of the box, but nothing more than a couple of lines in a file (all these things I learned from github/this forum).

Some tools that have been very useful and helped me grasp the ins an outs of Sage 10 are sage-directives, poet, and acf-composer by @Log1x, and this guide on View Composers has helped me understand how to work with data in Sage.

Lastly, I think there’s a lot of us who are constantly looking for/to help on this forum while we wait for the official docs, so I would say go for it!

1 Like

Whelp, now I even have a bigger problem.

My failures of getting Tailwind 2.0 installed with Sage 9 now result in all these warnings when attempting to simply install Sage 9 with the built in Tailwind version.

warning browser-sync > localtunnel > debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
warning browsersync-webpack-plugin > bs-html-injector > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning browsersync-webpack-plugin > bs-html-injector > jsdom > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning browsersync-webpack-plugin > bs-html-injector > request > har-validator@5.1.5: this library is no longer supported
warning copy-globs-webpack-plugin > chokidar@1.7.0: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
warning copy-globs-webpack-plugin > chokidar > fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
warning copy-globs-webpack-plugin > chokidar > readdirp > micromatch > snapdragon > source-map-resolve > resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
warning copy-globs-webpack-plugin > chokidar > readdirp > micromatch > snapdragon > source-map-resolve > urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
warning css-loader > cssnano > autoprefixer > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
warning css-loader > cssnano > postcss-merge-rules > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
warning css-loader > cssnano > postcss-merge-rules > caniuse-api > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
warning eslint > file-entry-cache > flat-cache > circular-json@0.3.3: CircularJSON is in maintenance only, flatted is its successor.
warning eslint-loader@4.0.2: This loader has been deprecated. Please use eslint-webpack-plugin
warning extract-text-webpack-plugin@3.0.2: Deprecated. Please use https://github.com/webpack-contrib/mini-css-extract-plugin
warning imagemin-webpack-plugin > babel-runtime > core-js@2.6.12: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
warning node-sass > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning node-sass > node-gyp > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning resolve-url-loader > rework > css > urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
warning webpack > watchpack > watchpack-chokidar2 > chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
warning webpack > watchpack > watchpack-chokidar2 > chokidar > fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
[3/5] 🚚  Fetching packages...
[4/5] 🔗  Linking dependencies...
warning " > autoprefixer@10.0.4" has unmet peer dependency "postcss@^8.1.0".
warning " > eslint-loader@4.0.2" has incorrect peer dependency "eslint@^6.0.0 || ^7.0.0".
warning " > eslint-loader@4.0.2" has incorrect peer dependency "webpack@^4.0.0 || ^5.0.0".
warning " > file-loader@6.2.0" has incorrect peer dependency "webpack@^4.0.0 || ^5.0.0".
warning " > postcss-loader@4.1.0" has incorrect peer dependency "webpack@^4.0.0 || ^5.0.0".
warning " > postcss-loader@4.1.0" has unmet peer dependency "postcss@^7.0.0 || ^8.0.1".
warning " > sass-loader@6.0.7" has incorrect peer dependency "node-sass@^4.0.0".
warning " > stylelint-webpack-plugin@0.10.5" has incorrect peer dependency "stylelint@^8.0.0".
warning " > stylelint-webpack-plugin@0.10.5" has incorrect peer dependency "webpack@^1.13.2 || ^2.7.0 || ^3.11.0 || ^4.4.0".
warning " > url-loader@4.1.1" has incorrect peer dependency "webpack@^4.0.0 || ^5.0.0".
[5/5] 🔨  Building fresh packages...
success Saved lockfile.

These warnings are then followed up by the same errors as I posted above (and below):

ERROR  Failed to compile with 2 errors                                                                                                                                   

 error  in ./resources/assets/styles/main.scss

Module build failed: ModuleBuildError: Module build failed: ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'plugins'. These properties are valid:
   object { postcssOptions?, execute?, sourceMap? }
    at validate (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/schema-utils/dist/validate.js:104:11)
    at Object.loader (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/postcss-loader/dist/index.js:43:29)
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/webpack/lib/NormalModule.js:195:19
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:233:18

 @ multi ./scripts/main.js ./styles/main.scss

 error  in ./resources/assets/styles/main.scss

Module build failed: ModuleBuildError: Module build failed: ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'plugins'. These properties are valid:
   object { postcssOptions?, execute?, sourceMap? }
    at validate (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/schema-utils/dist/validate.js:104:11)
    at Object.loader (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/postcss-loader/dist/index.js:43:29)
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/webpack/lib/NormalModule.js:195:19
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:233:18

Wow, I really messed things up this time.

Are you using NVM to manage your node versions?

Yes sir, I sure am.
So i was using 12 when attempting to upgrade to Tailwind2.
Going back, I’ve tried both v 10 and 8.

I completely removed my sage install, reinstalled sage 9.
Using node v10 I receive the same errors above/below on yarn & yarn build:

 ERROR  Failed to compile with 2 errors                                                                                                                                   2:23:20 PM

 error  in ./resources/assets/styles/main.scss

Module build failed: ModuleBuildError: Module build failed: ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'plugins'. These properties are valid:
   object { postcssOptions?, execute?, sourceMap? }
    at validate (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/schema-utils/dist/validate.js:104:11)
    at Object.loader (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/postcss-loader/dist/index.js:43:29)
    at runLoaders (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/webpack/lib/NormalModule.js:195:19)
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:233:18

 @ multi ./scripts/main.js ./styles/main.scss

 error  in ./resources/assets/styles/main.scss

Module build failed: ModuleBuildError: Module build failed: ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'plugins'. These properties are valid:
   object { postcssOptions?, execute?, sourceMap? }
    at validate (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/schema-utils/dist/validate.js:104:11)
    at Object.loader (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/postcss-loader/dist/index.js:43:29)
    at runLoaders (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/webpack/lib/NormalModule.js:195:19)
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:233:18

                    Asset     Size  Chunks             Chunk Names
          scripts/main.js  9.07 kB       0  [emitted]  main
    scripts/customizer.js  3.25 kB       1  [emitted]  customizer
      scripts/main.js.map  8.52 kB       0  [emitted]  main
scripts/customizer.js.map  3.08 kB       1  [emitted]  customizer
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

All previous projects I have are able to build still using the proper node version for each project. What could be causing this issue on a fresh install of sage 9?

Here’s what’s happening when attempting to update Bedrocks composer now:

[UnexpectedValueException]                                                                                           
  Unknown package has no name defined ([{"name":"composer\/installers","version":"v1.9.0","version_normalized":"1.9.0  
  .0","source":{"type":"git","url":"https:\/\/github.com\/composer\/installers.git","reference":"b93bcf0fa1fccb0b7d17  
  6b0967d969691cd74cca"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/composer\/installers\/zipball\/  
  b93bcf0fa1fccb0b7d176b0967d969691cd74cca","reference":"b93bcf0fa1fccb0b7d176b0967d969691cd74cca","shasum":""},"requ  
  ire":{"composer-plugin-api":"^1.0 || ^2.0"},"replace":{"roundcube\/plugin-installer":"*","shama\/baton":"*"},"requi  
  re-dev":{"composer\/composer":"1.6.* || 2.0.*@dev","composer\/semver":"1.0.* || 2.0.*@dev","phpunit\/phpunit":"^4.8  
  .36","sebastian\/comparator":"^1.2.4","symfony\/process":"^2.3"},"time":"2020-04-07T06:57:05+00:00","type":"compose  
  r-plugin","extra":{"class":"Composer\\Installers\\Plugin","branch-alias":{"dev-master":"1.0-dev"}},"installation-so  
  urce":"dist","autoload":{"psr-4":{"Composer\\Installers\\":"src\/Composer\/Installers"}},"notification-url":"https:  
  \/\/packagist.org\/downloads\/","license":["MIT"],"authors":[{"name":"Kyle Robinson Young","email":"kyle@dontkry.co  
  m","homepage":"https:\/\/github.com\/shama"}],"description":"A multi-framework Composer library installer","homepag  
  e":"https:\/\/composer.github.io\/installers\/","keywords":["Craft","Dolibarr","Eliasis","Hurad","ImageCMS","Kanboa  
  rd","Lan Management System","MODX Evo","MantisBT","Mautic","Maya","OXID","Plentymarkets","Porto","RadPHP","SMF","Th  
  elia","Whmcs","WolfCMS","agl","aimeos","annotatecms","attogram","bitrix","cakephp","chef","cockpit","codeigniter","  
  concrete5","croogo","dokuwiki","drupal","eZ Platform","elgg","expressionengine","fuelphp","grav","installer","itop"  
  ,"joomla","known","kohana","laravel","lavalite","lithium","magento","majima","mako","mediawiki","modulework","modx"  
  ,"moodle","osclass","phpbb","piwik","ppi","puppet","pxcms","reindex","roundcube","shopware","silverstripe","sydes",  
  "sylius","symfony","typo3","wordpress","yawik","zend","zikula"],"install-path":".\/installers"},{"name":"oscarotero  
  \/env","version":"v2.1.0","version_normalized":"2.1.0.0","source":{"type":"git","url":"https:\/\/github.com\/oscaro  
  tero\/env.git","reference":"0da22cadc6924155fa9bbea2cdda2e84ab7cbdd3"},"dist":{"type":"zip","url":"https:\/\/api.gi  
  thub.com\/repos\/oscarotero\/env\/zipball\/0da22cadc6924155fa9bbea2cdda2e84ab7cbdd3","reference":"0da22cadc6924155f  
  a9bbea2cdda2e84ab7cbdd3","shasum":""},"require":{"ext-ctype":"*","php":">=7.1"},"require-dev":{"friendsofphp\/php-c  
  s-fixer":"^2.16","phpunit\/phpunit":"^7.0"},"time":"2020-06-11T10:59:27+00:00","type":"library","installation-sourc  
  e":"dist","autoload":{"psr-4":{"Env\\":"src\/"},"files":["src\/env_function.php"]},"notification-url":"https:\/\/pa  
  ckagist.org\/downloads\/","license":["MIT"],"authors":[{"name":"Oscar Otero","email":"oom@oscarotero.com","homepage  
  ":"http:\/\/oscarotero.com","role":"Developer"}],"description":"Simple library to consume environment variables","h  
  omepage":"https:\/\/github.com\/oscarotero\/env","keywords":["env"],"install-path":"..\/oscarotero\/env"},{"name":"  
  phpoption\/phpoption","version":"1.7.5","version_normalized":"1.7.5.0","source":{"type":"git","url":"https:\/\/gith  
  ub.com\/schmittjoh\/php-option.git","reference":"994ecccd8f3283ecf5ac33254543eb0ac946d525"},"dist":{"type":"zip","u  
  rl":"https:\/\/api.github.com\/repos\/schmittjoh\/php-option\/zipball\/994ecccd8f3283ecf5ac33254543eb0ac946d525","r  
  eference":"994ecccd8f3283ecf5ac33254543eb0ac946d525","shasum":""},"require":{"php":"^5.5.9 || ^7.0 || ^8.0"},"requi  
  re-dev":{"bamarni\/composer-bin-plugin":"^1.4.1","phpunit\/phpunit":"^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 |  
  | ^9.0"},"time":"2020-07-20T17:29:33+00:00","type":"library","extra":{"branch-alias":{"dev-master":"1.7-dev"}},"ins  
  tallation-source":"dist","autoload":{"psr-4":{"PhpOption\\":"src\/PhpOption\/"}},"notification-url":"https:\/\/pack  
  agist.org\/downloads\/","license":["Apache-2.0"],"authors":[{"name":"Johannes M. Schmitt","email":"schmittjoh@gmail  
  .com"},{"name":"Graham Campbell","email":"graham@alt-three.com"}],"description":"Option Type for PHP","keywords":["  
  language","option","php","type"],"install-path":"..\/phpoption\/phpoption"},{"name":"roave\/security-advisories","v  
  ersion":"dev-master","version_normalized":"dev-master","source":{"type":"git","url":"https:\/\/github.com\/Roave\/S  
  ecurityAdvisories.git","reference":"327370943772f9917bc2dc2aa4263db2d572a112"},"dist":{"type":"zip","url":"https:\/  
  \/api.github.com\/repos\/Roave\/SecurityAdvisories\/zipball\/327370943772f9917bc2dc2aa4263db2d572a112","reference":  
  "327370943772f9917bc2dc2aa4263db2d572a112","shasum":""},"conflict":{"3f\/pygmentize":"<1.2","adodb\/adodb-php":"<5.  
  20.12","alterphp\/easyadmin-extension-bundle":">=1.2,<1.2.11|>=1.3,<1.3.1","amphp\/artax":"<1.0.6|>=2,<2.0.6","amph  
  p\/http":"<1.0.1","amphp\/http-client":">=4,<4.4","api-platform\/core":">=2.2,<2.2.10|>=2.3,<2.3.6","asymmetricrypt  
  \/asymmetricrypt":">=0,<9.9.99","aws\/aws-sdk-php":">=3,<3.2.1","bagisto\/bagisto":"<0.1.5","barrelstrength\/sprout  
  -base-email":"<1.2.7","barrelstrength\/sprout-forms":"<3.9","baserproject\/basercms":">=4,<=4.3.6","bolt\/bolt":"<3  
  .7.1","brightlocal\/phpwhois":"<=4.2.5","buddypress\/buddypress":"<5.1.2","bugsnag\/bugsnag-laravel":">=2,<2.0.2","  
  cakephp\/cakephp":">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3  
  .7,<3.7.7","cart2quote\/module-quotation":">=4.1.6,<=4.4.5|>=5,<5.4.4","cartalyst\/sentry":"<=2.1.6","centreon\/cen  
  treon":"<18.10.8|>=19,<19.4.5","cesnet\/simplesamlphp-module-proxystatistics":"<3.1","codeigniter\/framework":"<=3.  
  0.6","composer\/composer":"<=1-alpha.11","contao-components\/mediaelement":">=2.14.2,<2.21.1","contao\/core":">=2,<  
  3.5.39","contao\/core-bundle":">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0","contao\/listing-bundle":">=4,<4.4.8","datadog\/d  
  d-trace":">=0.30,<0.30.2","david-garcia\/phpwhois":"<=4.3.1","derhansen\/sf_event_mgt":"<4.3.1|>=5,<5.1.1","doctrin  
  e\/annotations":">=1,<1.2.7","doctrine\/cache":">=1,<1.3.2|>=1.4,<1.4.2","doctrine\/common":">=2,<2.4.3|>=2.5,<2.5.  
  1","doctrine\/dbal":">=2,<2.0.8|>=2.1,<2.1.2","doctrine\/doctrine-bundle":"<1.5.2","doctrine\/doctrine-module":"<=0  
  .7.1","doctrine\/mongodb-odm":">=1,<1.0.2","doctrine\/mongodb-odm-bundle":">=2,<3.0.1","doctrine\/orm":">=2,<2.4.8|  
  >=2.5,<2.5.1","dolibarr\/dolibarr":"<11.0.4","dompdf\/dompdf":">=0.6,<0.6.2","drupal\/core":">=7,<7.73|>=8,<8.8.10|  
  >=8.9,<8.9.6|>=9,<9.0.6","drupal\/drupal":">=7,<7.73|>=8,<8.8.10|>=8.9,<8.9.6|>=9,<9.0.6","endroid\/qr-code-bundle"  
  :"<3.4.2","enshrined\/svg-sanitize":"<0.13.1","erusev\/parsedown":"<1.7.2","ezsystems\/demobundle":">=5.4,<5.4.6.1"  
  ,"ezsystems\/ezdemo-ls-extension":">=5.4,<5.4.2.1","ezsystems\/ezfind-ls":">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12  
  ,<2017.12.0.1","ezsystems\/ezplatform":">=1.7,<1.7.9.1|>=1.13,<1.13.5.1|>=2.5,<2.5.4","ezsystems\/ezplatform-admin-  
  ui":">=1.3,<1.3.5|>=1.4,<1.4.6","ezsystems\/ezplatform-admin-ui-assets":">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1","ezsys  
  tems\/ezplatform-kernel":">=1,<1.0.2.1","ezsystems\/ezplatform-user":">=1,<1.0.1","ezsystems\/ezpublish-kernel":">=  
  5.3,<5.3.12.1|>=5.4,<5.4.14.2|>=6,<6.7.9.1|>=6.8,<6.13.6.3|>=7,<7.2.4.1|>=7.3,<7.3.2.1|>=7.5,<7.5.7.1","ezsystems\/  
  ezpublish-legacy":">=5.3,<5.3.12.6|>=5.4,<5.4.14.2|>=2011,<2017.12.7.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3|>=  
  2019.3,<2019.3.5.1","ezsystems\/platform-ui-assets-bundle":">=4.2,<4.2.3","ezsystems\/repository-forms":">=2.3,<2.3  
  .2.1","ezyang\/htmlpurifier":"<4.1.1","firebase\/php-jwt":"<2","fooman\/tcpdf":"<6.2.22","fossar\/tcpdf-parser":"<6  
  .2.22","friendsofsymfony\/oauth2-php":"<1.3","friendsofsymfony\/rest-bundle":">=1.2,<1.2.2","friendsofsymfony\/user  
  -bundle":">=1.2,<1.3.5","friendsoftypo3\/mediace":">=7.6.2,<7.6.5","fuel\/core":"<1.8.1","getgrav\/grav":"<1.7-beta  
  .8","gos\/web-socket-bundle":"<1.10.4|>=2,<2.6.1|>=3,<3.3","gree\/jose":"<=2.2","gregwar\/rst":"<1.0.3","guzzlehttp  
  \/guzzle":">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1","illuminate\/auth":">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5  
  ,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10","illuminate\/cookie":">=4,<=4.  
  0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.  
  4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4","illum  
  inate\/database":">=4,<4.0.99|>=4.1,<4.1.29|>=5.5,<=5.5.44|>=6,<6.18.34|>=7,<7.23.2","illuminate\/encryption":">=4,  
  <=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5  
  .5,<5.5.40|>=5.6,<5.6.15","illuminate\/view":">=7,<7.1.2","ivankristianto\/phpwhois":"<=4.3","james-heinrich\/getid  
  3":"<1.9.9","joomla\/session":"<1.3.1","jsmitty12\/phpwhois":"<5.1","kazist\/phpwhois":"<=4.2.6","kitodo\/presentat  
  ion":"<3.1.2","kreait\/firebase-php":">=3.2,<3.8.1","la-haute-societe\/tcpdf":"<6.2.22","laravel\/framework":">=4,<  
  4.0.99|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=  
  5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.34|>=7,<7.23.2","lar  
  avel\/socialite":">=1,<1.0.99|>=2,<2.0.10","league\/commonmark":"<0.18.3","librenms\/librenms":"<1.53","livewire\/l  
  ivewire":">2.2.4,<2.2.6","magento\/community-edition":">=2,<2.2.10|>=2.3,<2.3.3","magento\/magento1ce":"<1.9.4.3","  
  magento\/magento1ee":">=1,<1.14.4.3","magento\/product-community-edition":">=2,<2.2.10|>=2.3,<2.3.2-p.2","marcwillm  
  ann\/turn":"<0.3.3","mediawiki\/core":">=1.31,<1.31.4|>=1.32,<1.32.4|>=1.33,<1.33.1","mittwald\/typo3_forum":"<1.2.  
  1","monolog\/monolog":">=1.8,<1.12","namshi\/jose":"<2.2","nette\/application":">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.  
  2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6","nette\/nette":">=2,<2.0.19|>=2.1,<2.1.13","nystudio107\/craft-seomati  
  c":"<3.3","nzo\/url-encryptor-bundle":">=4,<4.3.2|>=5,<5.0.1","october\/backend":">=1.0.319,<1.0.467","october\/cms  
  ":">=1.0.319,<1.0.466","october\/october":">=1.0.319,<1.0.466","october\/rain":">=1.0.319,<1.0.468","onelogin\/php-  
  saml":"<2.10.4","oneup\/uploader-bundle":"<1.9.3|>=2,<2.1.5","openid\/php-openid":"<2.3","openmage\/magento-lts":"<  
  19.4.6|>=20,<20.0.2","oro\/crm":">=1.7,<1.7.4","oro\/platform":">=1.7,<1.7.4","padraic\/humbug_get_contents":"<1.1.  
  2","pagarme\/pagarme-php":">=0,<3","paragonie\/random_compat":"<2","paypal\/merchant-sdk-php":"<3.12","pear\/archiv  
  e_tar":"<1.4.4","personnummer\/personnummer":"<3.0.2","phpfastcache\/phpfastcache":">=5,<5.0.13","phpmailer\/phpmai  
  ler":"<6.1.6","phpmussel\/phpmussel":">=1,<1.6","phpmyadmin\/phpmyadmin":"<4.9.2","phpoffice\/phpexcel":"<1.8.2","p  
  hpoffice\/phpspreadsheet":"<1.8","phpunit\/phpunit":">=4.8.19,<4.8.28|>=5.0.10,<5.6.3","phpwhois\/phpwhois":"<=4.2.  
  5","phpxmlrpc\/extras":"<0.6.1","pimcore\/pimcore":"<6.3","prestashop\/autoupgrade":">=4,<4.10.1","prestashop\/cont  
  actform":">1.0.1,<4.3","prestashop\/gamification":"<2.3.2","prestashop\/ps_facetedsearch":"<3.4.1","privatebin\/pri  
  vatebin":"<1.2.2|>=1.3,<1.3.2","propel\/propel":">=2-alpha.1,<=2-alpha.7","propel\/propel1":">=1,<=1.7.1","pterodac  
  tyl\/panel":"<0.7.19|>=1-rc.0,<=1-rc.6","pusher\/pusher-php-server":"<2.2.1","rainlab\/debugbar-plugin":"<3.1","rob  
  richards\/xmlseclibs":"<3.0.4","sabberworm\/php-css-parser":">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9  
  |>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1","sabre\/dav":">  
  =1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9","scheb\/two-factor-bundle":">=0,<3.26|>=4,<4.11","sensiolabs\/connect":"<4  
  .2.3","serluck\/phpwhois":"<=4.2.6","shopware\/core":"<=6.3.1","shopware\/platform":"<=6.3.1","shopware\/shopware":  
  "<5.3.7","silverstripe\/admin":">=1.0.3,<1.0.4|>=1.1,<1.1.1","silverstripe\/assets":">=1,<1.4.7|>=1.5,<1.5.2","silv  
  erstripe\/cms":"<4.3.6|>=4.4,<4.4.4","silverstripe\/comments":">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1","silverstripe\  
  /forum":"<=0.6.1|>=0.7,<=0.7.3","silverstripe\/framework":"<4.4.7|>=4.5,<4.5.4","silverstripe\/graphql":">=2,<2.0.5  
  |>=3,<3.1.2|>=3.2,<3.2.4","silverstripe\/registry":">=2.1,<2.1.2|>=2.2,<2.2.1","silverstripe\/restfulserver":">=1,<  
  1.0.9|>=2,<2.0.4","silverstripe\/subsites":">=2,<2.1.1","silverstripe\/taxonomy":">=1.3,<1.3.1|>=2,<2.0.1","silvers  
  tripe\/userforms":"<3","simple-updates\/phpwhois":"<=1","simplesamlphp\/saml2":"<1.10.6|>=2,<2.3.8|>=3,<3.1.4","sim  
  plesamlphp\/simplesamlphp":"<1.18.6","simplesamlphp\/simplesamlphp-module-infocard":"<1.0.1","simplito\/elliptic-ph  
  p":"<1.0.6","slim\/slim":"<2.6","smarty\/smarty":"<3.1.33","socalnick\/scn-social-auth":"<1.15.2","spoonity\/tcpdf"  
  :"<6.2.22","squizlabs\/php_codesniffer":">=1,<2.8.1|>=3,<3.0.1","ssddanbrown\/bookstack":"<0.29.2","stormpath\/sdk"  
  :">=0,<9.9.99","studio-42\/elfinder":"<2.1.49","sulu\/sulu":"<1.6.34|>=2,<2.0.10|>=2.1,<2.1.1","swiftmailer\/swiftm  
  ailer":">=4,<5.4.5","sylius\/admin-bundle":">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2","sylius\/grid":">=1,<1.1.19|>=1.  
  2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1","sylius\/grid-bundle":">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>  
  =1.4,<1.4.5|>=1.5,<1.5.1","sylius\/resource-bundle":"<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4","sylius\/syliu  
  s":"<1.3.16|>=1.4,<1.4.12|>=1.5,<1.5.9|>=1.6,<1.6.5","symbiote\/silverstripe-multivaluefield":">=3,<3.0.99","symbio  
  te\/silverstripe-versionedfiles":"<=2.0.3","symfony\/cache":">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8","symfony\/depe  
  ndency-injection":">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7","symfony\/error-ha  
  ndler":">=4.4,<4.4.4|>=5,<5.0.4","symfony\/form":">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.  
  20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1","symfony\/framework-bundle":">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,  
  <2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7","symfony\/http-foundation":">=2,<2.8.52|>=3,<3.4.35|>=4  
  ,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7","symfony\/http-kernel":">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4  
  .4.13|>=5,<5.1.5","symfony\/intl":">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13","symfony\/mime":">=4.3,<4  
  .3.8","symfony\/phpunit-bridge":">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7","symfony\/polyfill":">=1,<1.10  
  ","symfony\/polyfill-php55":">=1,<1.10","symfony\/proxy-manager-bridge":">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=  
  4,<4.1.12|>=4.2,<4.2.7","symfony\/routing":">=2,<2.0.19","symfony\/security":">=2,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26  
  |>=4,<4.1.12|>=4.2,<4.2.7|>=4.4,<4.4.7|>=5,<5.0.7","symfony\/security-bundle":">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.1  
  7|>=3.4,<3.4.11|>=4,<4.0.11","symfony\/security-core":">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=  
  3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7","symfony\/security-csrf":">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|  
  >=4,<4.0.11","symfony\/security-guard":">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11","symfony\/security-htt  
  p":">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7","symfon  
  y\/serializer":">=2,<2.0.11","symfony\/symfony":">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5","sym  
  fony\/translation":">=2,<2.0.17","symfony\/validator":">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3","symfon  
  y\/var-exporter":">=4.2,<4.2.12|>=4.3,<4.3.8","symfony\/web-profiler-bundle":">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4  
  ","symfony\/yaml":">=2,<2.0.22|>=2.1,<2.1.7","t3g\/svg-sanitizer":"<1.0.3","tecnickcom\/tcpdf":"<6.2.22","thelia\/b  
  ackoffice-default-template":">=2.1,<2.1.2","thelia\/thelia":">=2.1-beta.1,<2.1.3","theonedemon\/phpwhois":"<=4.2.5"  
  ,"titon\/framework":">=0,<9.9.99","truckersmp\/phpwhois":"<=4.3.1","twig\/twig":"<1.38|>=2,<2.7","typo3\/cms":">=6.  
  2,<6.2.30|>=7,<7.6.32|>=8,<8.7.30|>=9,<9.5.20|>=10,<10.4.6","typo3\/cms-core":">=8,<8.7.30|>=9,<9.5.20|>=10,<10.4.6  
  ","typo3\/flow":">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.  
  5","typo3\/neos":">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4","typo3\/phar-stream-wrapper":">=1,<2.1.1|>=3,<3.1.1","typo  
  3fluid\/fluid":">=2,<2.0.5|>=2.1,<2.1.4|>=2.2,<2.2.1|>=2.3,<2.3.5|>=2.4,<2.4.1|>=2.5,<2.5.5|>=2.6,<2.6.1","ua-parse  
  r\/uap-php":"<3.8","usmanhalalit\/pixie":"<1.0.3|>=2,<2.0.2","verot\/class.upload.php":"<=1.0.3|>=2,<=2.0.4","walla  
  bag\/tcpdf":"<6.2.22","willdurand\/js-translation-bundle":"<2.1.1","yii2mod\/yii2-cms":"<1.9.2","yiisoft\/yii":">=1  
  .1.14,<1.1.15","yiisoft\/yii2":"<2.0.38","yiisoft\/yii2-bootstrap":"<2.0.4","yiisoft\/yii2-dev":"<2.0.15","yiisoft\  
  /yii2-elasticsearch":"<2.0.5","yiisoft\/yii2-gii":"<2.0.4","yiisoft\/yii2-jui":"<2.0.4","yiisoft\/yii2-redis":"<2.0  
  .8","yourls\/yourls":"<1.7.4","zendframework\/zend-cache":">=2.4,<2.4.8|>=2.5,<2.5.3","zendframework\/zend-captcha"  
  :">=2,<2.4.9|>=2.5,<2.5.2","zendframework\/zend-crypt":">=2,<2.4.9|>=2.5,<2.5.2","zendframework\/zend-db":">=2,<2.0  
  .99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5","zendframework\/zend-developer-tools":">=1.2.2,<1.2.3","zendframework  
  \/zend-diactoros":">=1,<1.8.4","zendframework\/zend-feed":">=1,<2.10.3","zendframework\/zend-form":">=2,<2.2.7|>=2.  
  3,<2.3.1","zendframework\/zend-http":">=1,<2.8.1","zendframework\/zend-json":">=2.1,<2.1.6|>=2.2,<2.2.6","zendframe  
  work\/zend-ldap":">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3","zendframework\/zend-mail":">=2,<2.4.11|>=2.  
  5,<2.7.2","zendframework\/zend-navigation":">=2,<2.2.7|>=2.3,<2.3.1","zendframework\/zend-session":">=2,<2.0.99|>=2  
  .1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4","zendframework\/zend-validator":">=2.3,<2.3.6","zendframework\/zend-view":">=  
  2,<2.2.7|>=2.3,<2.3.1","zendframework\/zend-xmlrpc":">=2.1,<2.1.6|>=2.2,<2.2.6","zendframework\/zendframework":"<2.  
  5.1","zendframework\/zendframework1":"<1.12.20","zendframework\/zendopenid":">=2,<2.0.2","zendframework\/zendxml":"  
  >=1,<1.0.1","zetacomponents\/mail":"<1.8.2","zf-commons\/zfc-user":"<1.2.2","zfcampus\/zf-apigility-doctrine":">=1,  
  <1.0.3","zfr\/zfr-oauth2-server-module":"<0.1.2"},"time":"2020-10-19T07:02:45+00:00","type":"metapackage","notifica  
  tion-url":"https:\/\/packagist.org\/downloads\/","license":["MIT"],"authors":[{"name":"Marco Pivetta","email":"ocra  
  mius@gmail.com","role":"maintainer"},{"name":"Ilya Tribusean","email":"slash3b@gmail.com","role":"maintainer"}],"de  
  scription":"Prevents installation of composer packages with known security vulnerabilities: no API, simply require   
  it","install-path":null},{"name":"roots\/bedrock-autoloader","version":"1.0.3","version_normalized":"1.0.3.0","sour  
  ce":{"type":"git","url":"https:\/\/github.com\/roots\/bedrock-autoloader.git","reference":"885f2a5c425d82dfd811ef4f  
  13ab8f5bcc89cd70"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/roots\/bedrock-autoloader\/zipball\  
  /885f2a5c425d82dfd811ef4f13ab8f5bcc89cd70","reference":"885f2a5c425d82dfd811ef4f13ab8f5bcc89cd70","shasum":""},"req  
  uire":{"php":">=7.1"},"time":"2020-05-18T04:43:20+00:00","type":"library","installation-source":"dist","autoload":{  
  "psr-4":{"Roots\\Bedrock\\":"src\/"}},"notification-url":"https:\/\/packagist.org\/downloads\/","license":["MIT"],"  
  authors":[{"name":"Nick Fox","email":"nick@foxaii.com","homepage":"https:\/\/github.com\/foxaii"},{"name":"Scott Wa  
  lkinshaw","email":"scott.walkinshaw@gmail.com","homepage":"https:\/\/github.com\/swalkinshaw"},{"name":"Austin Pray  
  ","email":"austin@austinpray.com","homepage":"https:\/\/github.com\/austinpray"}],"description":"An autoloader that  
   enables standard plugins to be required just like must-use plugins","keywords":["autoloader","bedrock","mu-plugin"  
  ,"must-use","plugin","wordpress"],"install-path":"..\/roots\/bedrock-autoloader"},{"name":"roots\/wordpress","versi  
  on":"5.5.3","version_normalized":"5.5.3.0","source":{"type":"git","url":"https:\/\/github.com\/WordPress\/WordPress  
  .git","reference":"5.5.3"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/WordPress\/WordPress\/zipba  
  ll\/5.5.3"},"require":{"php":">=5.3.2","roots\/wordpress-core-installer":">=1.0.0"},"time":"2020-10-30T20:40:02+00:  
  00","type":"wordpress-core","installation-source":"dist","notification-url":"https:\/\/packagist.org\/downloads\/",  
  "license":["GPL-2.0-or-later"],"authors":[{"name":"WordPress Community","homepage":"https:\/\/wordpress.org\/about\  
  /"}],"description":"WordPress is web software you can use to create a beautiful website or blog.","homepage":"https  
  :\/\/wordpress.org\/","keywords":["blog","cms","wordpress"],"install-path":"..\/..\/web\/wp"},{"name":"roots\/wordp  
  ress-core-installer","version":"1.100.0","version_normalized":"1.100.0.0","source":{"type":"git","url":"https:\/\/g  
  ithub.com\/roots\/wordpress-core-installer.git","reference":"73f8488e5178c5d54234b919f823a9095e2b1847"},"dist":{"ty  
  pe":"zip","url":"https:\/\/api.github.com\/repos\/roots\/wordpress-core-installer\/zipball\/73f8488e5178c5d54234b91  
  9f823a9095e2b1847","reference":"73f8488e5178c5d54234b919f823a9095e2b1847","shasum":""},"require":{"composer-plugin-  
  api":"^1.0 || ^2.0","php":">=5.6.0"},"conflict":{"composer\/installers":"<1.0.6"},"replace":{"johnpbloch\/wordpress  
  -core-installer":"*"},"require-dev":{"composer\/composer":"^1.0 || ^2.0","phpunit\/phpunit":">=5.7.27"},"time":"202  
  0-08-20T00:27:30+00:00","type":"composer-plugin","extra":{"class":"Roots\\Composer\\WordPressCorePlugin"},"installa  
  tion-source":"dist","autoload":{"psr-4":{"Roots\\Composer\\":"src\/"}},"notification-url":"https:\/\/packagist.org\  
  /downloads\/","license":["GPL-2.0-or-later"],"authors":[{"name":"John P. Bloch","email":"me@johnpbloch.com"},{"name  
  ":"Roots","email":"team@roots.io"}],"description":"A custom installer to handle deploying WordPress with composer",  
  "keywords":["wordpress"],"install-path":"..\/roots\/wordpress-core-installer"},{"name":"roots\/wp-config","version"  
  :"1.0.0","version_normalized":"1.0.0.0","source":{"type":"git","url":"https:\/\/github.com\/roots\/wp-config.git","  
  reference":"37c38230796119fb487fa03346ab0706ce6d4962"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\  
  /roots\/wp-config\/zipball\/37c38230796119fb487fa03346ab0706ce6d4962","reference":"37c38230796119fb487fa03346ab0706  
  ce6d4962","shasum":""},"require":{"php":">=5.6"},"require-dev":{"php-coveralls\/php-coveralls":"^2.1","phpunit\/php  
  unit":"^5.7","roave\/security-advisories":"dev-master","squizlabs\/php_codesniffer":"^3.3"},"time":"2018-08-10T14:1  
  8:38+00:00","type":"library","installation-source":"dist","autoload":{"psr-4":{"Roots\\WPConfig\\":"src"}},"notific  
  ation-url":"https:\/\/packagist.org\/downloads\/","license":["MIT"],"authors":[{"name":"Austin Pray","email":"austi  
  n@austinpray.com"}],"description":"Collect configuration values and safely define() them","install-path":"..\/roots  
  \/wp-config"},{"name":"roots\/wp-password-bcrypt","version":"1.0.0","version_normalized":"1.0.0.0","source":{"type"  
  :"git","url":"https:\/\/github.com\/roots\/wp-password-bcrypt.git","reference":"5cecd2e98ccc3193443cc5c5db9b3bc7abe  
  d5ffa"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/roots\/wp-password-bcrypt\/zipball\/5cecd2e98c  
  cc3193443cc5c5db9b3bc7abed5ffa","reference":"5cecd2e98ccc3193443cc5c5db9b3bc7abed5ffa","shasum":""},"require":{"com  
  poser\/installers":"~1.0","php":">=5.5.0"},"require-dev":{"brain\/monkey":"^1.3.1","mockery\/mockery":"^0.9.4","php  
  unit\/phpunit":"^4.8.23|^5.2.9","squizlabs\/php_codesniffer":"^2.5.1"},"time":"2016-03-01T16:27:06+00:00","type":"l  
  ibrary","installation-source":"dist","autoload":{"files":["wp-password-bcrypt.php"]},"notification-url":"https:\/\/  
  packagist.org\/downloads\/","license":["MIT"],"authors":[{"name":"Scott Walkinshaw","email":"scott.walkinshaw@gmail  
  .com","homepage":"https:\/\/github.com\/swalkinshaw"},{"name":"qwp6t","homepage":"https:\/\/github.com\/qwp6t"},{"n  
  ame":"Jan Pingel","email":"jpingel@bitpiston.com","homepage":"http:\/\/janpingel.com"}],"description":"WordPress pl  
  ugin which replaces wp_hash_password and wp_check_password's phpass hasher with PHP 5.5's password_hash and passwor  
  d_verify using bcrypt.","homepage":"https:\/\/roots.io\/plugins\/wp-password-bcrypt","keywords":["wordpress wp bcry  
  pt password"],"install-path":"..\/roots\/wp-password-bcrypt"},{"name":"squizlabs\/php_codesniffer","version":"3.5.6  
  ","version_normalized":"3.5.6.0","source":{"type":"git","url":"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer.git  
  ","reference":"e97627871a7eab2f70e59166072a6b767d5834e0"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/rep  
  os\/squizlabs\/PHP_CodeSniffer\/zipball\/e97627871a7eab2f70e59166072a6b767d5834e0","reference":"e97627871a7eab2f70e  
  59166072a6b767d5834e0","shasum":""},"require":{"ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*","php":">  
  =5.4.0"},"require-dev":{"phpunit\/phpunit":"^4.0 || ^5.0 || ^6.0 || ^7.0"},"time":"2020-08-10T04:50:15+00:00","bin"  
  :["bin\/phpcs","bin\/phpcbf"],"type":"library","extra":{"branch-alias":{"dev-master":"3.x-dev"}},"installation-sour  
  ce":"dist","notification-url":"https:\/\/packagist.org\/downloads\/","license":["BSD-3-Clause"],"authors":[{"name":  
  "Greg Sherwood","role":"lead"}],"description":"PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects   
  violations of a defined set of coding standards.","homepage":"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer","ke  
  ywords":["phpcs","standards"],"install-path":"..\/squizlabs\/php_codesniffer"},{"name":"symfony\/polyfill-ctype","v  
  ersion":"v1.18.1","version_normalized":"1.18.1.0","source":{"type":"git","url":"https:\/\/github.com\/symfony\/poly  
  fill-ctype.git","reference":"1c302646f6efc070cd46856e600e5e0684d6b454"},"dist":{"type":"zip","url":"https:\/\/api.g  
  ithub.com\/repos\/symfony\/polyfill-ctype\/zipball\/1c302646f6efc070cd46856e600e5e0684d6b454","reference":"1c302646  
  f6efc070cd46856e600e5e0684d6b454","shasum":""},"require":{"php":">=5.3.3"},"suggest":{"ext-ctype":"For best perform  
  ance"},"time":"2020-07-14T12:35:20+00:00","type":"library","extra":{"branch-alias":{"dev-master":"1.18-dev"},"thank  
  s":{"name":"symfony\/polyfill","url":"https:\/\/github.com\/symfony\/polyfill"}},"installation-source":"dist","auto  
  load":{"psr-4":{"Symfony\\Polyfill\\Ctype\\":""},"files":["bootstrap.php"]},"notification-url":"https:\/\/packagist  
  .org\/downloads\/","license":["MIT"],"authors":[{"name":"Gert de Pagter","email":"BackEndTea@gmail.com"},{"name":"S  
  ymfony Community","homepage":"https:\/\/symfony.com\/contributors"}],"description":"Symfony polyfill for ctype func  
  tions","homepage":"https:\/\/symfony.com","keywords":["compatibility","ctype","polyfill","portable"],"install-path"  
  :"..\/symfony\/polyfill-ctype"},{"name":"vlucas\/phpdotenv","version":"v4.1.8","version_normalized":"4.1.8.0","sour  
  ce":{"type":"git","url":"https:\/\/github.com\/vlucas\/phpdotenv.git","reference":"572af79d913627a9d70374d27a6f5d68  
  9a35de32"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/vlucas\/phpdotenv\/zipball\/572af79d913627a  
  9d70374d27a6f5d689a35de32","reference":"572af79d913627a9d70374d27a6f5d689a35de32","shasum":""},"require":{"php":"^5  
  .5.9 || ^7.0 || ^8.0","phpoption\/phpoption":"^1.7.3","symfony\/polyfill-ctype":"^1.17"},"require-dev":{"bamarni\/c  
  omposer-bin-plugin":"^1.4.1","ext-filter":"*","ext-pcre":"*","phpunit\/phpunit":"^4.8.35 || ^5.7.27 || ^6.5.6 || ^7  
  .0"},"suggest":{"ext-filter":"Required to use the boolean validator.","ext-pcre":"Required to use most of the libra  
  ry."},"time":"2020-07-14T19:22:52+00:00","type":"library","extra":{"branch-alias":{"dev-master":"4.1-dev"}},"instal  
  lation-source":"dist","autoload":{"psr-4":{"Dotenv\\":"src\/"}},"notification-url":"https:\/\/packagist.org\/downlo  
  ads\/","license":["BSD-3-Clause"],"authors":[{"name":"Graham Campbell","email":"graham@alt-three.com","homepage":"h  
  ttps:\/\/gjcampbell.co.uk\/"},{"name":"Vance Lucas","email":"vance@vancelucas.com","homepage":"https:\/\/vancelucas  
  .com\/"}],"description":"Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagicall  
  y.","keywords":["dotenv","env","environment"],"install-path":"..\/vlucas\/phpdotenv"}]).                             

All of these issues from attempting to upgrade to Tailwind2.

This worked for me to run Sage 9 with Tailwind 2: https://tailwindcss.com/docs/installation#post-css-7-compatibility-build

npm uninstall tailwindcss postcss autoprefixer
npm install tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9
1 Like

@hostis912

Would you mind explaining your process? When I install sage 9 and include tailwind, then update tailwind using the method you say worked for you, I still get the same errors as I’ve posted above.

Thanks!

Just caught this now and pasting here for those looking… Simon Swiss over at Tailwind Labs dove into Sage 9 and posted this. I’ll give it a go tomorrow.

https://github.com/tailwindlabs/tailwindcss/discussions/2941#discussioncomment-145518

I have now tried a new installation (Sage 9.0.10) and updated to Tailwind 2.

  • Did not work.

Then i did: npm uninstall tailwindcss postcss autoprefixer and npm i -D tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9

  • Now this did not work because of the postcss-loader.

So i downgraded postcss-laoder 4 to 3: npm uninstall postcss-loader and npm i -D postcss-loader@3

  • Now it works.

Because of your hint i upgraded postcss-loader to v4 again and changed the webpack.config.preset.js like mentioned in https://github.com/tailwindlabs/tailwindcss/discussions/2941#discussioncomment-145518 .

  • It works too.

Hey everyone. I tagged a release, 1.6.4, in sage-installer which includes Tailwind 2 support. Still gotta get that dependency bump merged into the Sage 9 branch and tag a new Sage 9 release, but if you want to use it in the meantime, do the following:

# This presumes you already have a Sage project started (either Composer created or Git cloned at the latest 9 tag)

# Update Sage Installer to 1.6.4
$ composer update roots/sage-installer

# Run the preset (might need to change the forward slashes to back slashes on Windows, I forget how that works)
$ ./vendor/bin/sage preset
1 Like

I still can’t get this to work.

My process goes like:

  1. Install Sage 9
  2. Choose Tailwind as the preset
  3. Update sage-installer
  4. Run the preset, choose Tailwind
  5. Run yarn && yarn build

Still get these errors:

 ERROR  Failed to compile with 2 errors                                                                                                                                   5:28:39 PM

 error  in ./resources/assets/styles/main.scss

Module build failed: ModuleBuildError: Module build failed: ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'plugins'. These properties are valid:
   object { postcssOptions?, execute?, sourceMap? }
    at validate (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/schema-utils/dist/validate.js:104:11)
    at Object.loader (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/postcss-loader/dist/index.js:43:29)
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/webpack/lib/NormalModule.js:195:19
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:233:18

 @ multi ./scripts/main.js ./styles/main.scss

 error  in ./resources/assets/styles/main.scss

Module build failed: ModuleBuildError: Module build failed: ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'plugins'. These properties are valid:
   object { postcssOptions?, execute?, sourceMap? }
    at validate (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/schema-utils/dist/validate.js:104:11)
    at Object.loader (/Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/postcss-loader/dist/index.js:43:29)
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/webpack/lib/NormalModule.js:195:19
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Volumes/LaCie/_development/_trellis/_hybrid/trellis.project.build/site/web/app/themes/sage/node_modules/loader-runner/lib/LoaderRunner.js:233:18

I am unable to reproduce this using your instructions. It seems like either your Sage 9 install isn’t the latest or the Sage Installer update isn’t being brought in.

Now, I actually remembered that there are some easier directions I can give for using the update to Sage Installer:

$ composer create-project roots/sage my-sage-project dev-9-tailwind-2

This creates the Sage project called my-sage-project using the 9-tailwind-2 branch (which uses roots/sage-installer at 1.6.4). I will see what I can do about getting this merged + tagged soon, so that you don’t need to specify the branch.

Even using this, I still did run into an error, but I was able to resolve it. The error was that Autoprefixer expects PostCSS 8 to be directly installed (yarn add postcss --dev), so I did that and I was able to build for development (yarn build) and production (yarn build:production) using Node 12 (Tailwind 2 requires Node 12 and greater).

TL;DR: until I get a solution tagged for Sage 9, you can do the following:

# Create a new project using the Sage 9 branch that uses Sage Installer 1.6.4
$ composer create-project roots/sage my-sage-project dev-9-tailwind-2

# Make sure you are using at least Node 12.13.0
# I use Volta for this: volta pin node@12

# Bump the PostCSS dependency to 8 (how I do it here is sloppy, but this is a temporary solution)
$ yarn add postcss --dev

# Run a build to confirm it works
$ yarn build
1 Like

Thanks a bunch @knowler-
I will give it a try a bit later this afternoon and let you know.
Much appreciated!

1 Like