Twigpack Changelog.

Link 1.2.18 · 2024.04.05

added - 2024.04.05

  • Add phpstan and ecs code linting
  • Add code-analysis.yaml GitHub action

changed - 2024.04.05

  • Updated docs to use node 20 & a new sitemap plugin
  • PHPstan code cleanup
  • ECS code cleanup

Link 1.2.17 · 2022.04.26

changed - 2022.04.26

  • Don't log the full exception on a Guzzle error, just log the message

Link 1.2.16 · 2022.04.17

fixed - 2022.04.17

  • Fix incorrect User-Agent header that could cause an error to be thrown

Link 1.2.15 · 2021.07.11

changed - 2021.07.11

  • Wrap calls to is_file() with try/catch, to handle open_basedir restrictions that cause exceptions to be thrown (https://github.com/nystudio107/craft-twigpack/issues/73)
  • Switched documentation system to VitePress

Link 1.2.14 · 2021.04.28

changed - 2021.04.28

  • Move settings from the composer.json “extra” to the plugin main class

fixed - 2021.04.28

  • Fix DOCSDEST path
  • No longer invalidate caches immediately in local dev, and instead rely on the 1s cache (https://github.com/nystudio107/craft-twigpack/issues/67)

Link 1.2.13 · 2021.04.13

added - 2021.04.13

  • Added buildchain for docs

fixed - 2021.04.13

  • Fixed a malformed User-Agent header in a request to mix-manifest.json (https://github.com/nystudio107/craft-twigpack/issues/62)

Link 1.2.12 · 2021.04.05

changed - 2021.04.05

  • Catch all errors thrown by Guzzle

fixed - 2021.04.05

  • Add a 100ms delay when requesting the manifest file if using it in hot mode, as a hack to avoid a webpack-dev-server / Tailwind CSS JIT race condition (https://github.com/nystudio107/craft/issues/55)

Link 1.2.11 · 2021.03.21

changed - 2021.03.21

  • Use Guzzle for remote file fetches rather than curl, for improved performance

Link 1.2.10 · 2021-02-24

added - 2021-02-24

  • Added a FileDependency cache dependency for files loaded from a local path, so things like the manifest.json will auto-cache bust if the file changes

changed - 2021-02-24

  • Default devServerBuildType reverted to modern

Link 1.2.9 · 2021-01-12

changed - 2021-01-12

  • Default devServerBuildType to combined

fixed - 2021-01-12

  • Ensure that getHttpResponseCode() returns a 404 on error

Link 1.2.8 · 2021-01-12

fixed - 2021-01-12

  • Fixed an issue where includeFileFromManifest() wouldn't properly fall back on non-hot files if the URL returned a 404 with HTML content

Link 1.2.7 · 2020-12-11

fixed - 2020-12-11

  • Fixed the craft.twigpack.includeFileFromManifest() so that it will use the internal devServer.publicPath setting for HMR

Link 1.2.6 · 2020-09-16

changed - 2020-09-16

  • Ensure that a string is always passed to Template::raw()
  • Updated the docs

Link 1.2.5 · 2020-08-14

changed - 2020-08-14

  • Fixed a regression from the styles.js error suppression that would cause it to throw an exception if you attempted to load it

Link 1.2.4 · 2020-08-12

changed - 2020-08-12

  • Suppress errors for styles.js modules (which is a work-around to a webpack bug)

Link 1.2.3 · 2020-06-24

added - 2020-06-24

  • Added the ability to pass down an $attributes array to functions that generate tags, so you can add arbitrary HTML attributes

Link 1.2.2 · 2020-05-25

added - 2020-05-25

  • Added cspNonce setting to allow for Content Security Policy nonce support for inline CSS/JS

changed - 2020-05-25

  • Switched over to using Yii2's Html:: helpers for creating various tags

fixed - 2020-05-25

  • Make sure $moduleHash is never undefined

Link 1.2.1 · 2020-05-04

added - 2020-05-04

  • Added the config setting devServerBuildType to determine which webpack-dev-server bundle is loaded.
  • Support passing an array of filenames for errorEntry

Link 1.2.0 · 2020-02-28

changed - 2020-02-28

  • Switched over to using media="print" for asynchronously loading a stylesheet as per The Simplest Way to Load CSS Asynchronously
  • Deprecated craft.twigpack.includeCssRelPreloadPolyfill() since it is no longer necessary. It now does nothing

Link 1.1.14 · 2020-02-04

added - 2020-02-04

  • If this is a dev-server, look for the modern manifest file first

Link 1.1.13 · 2020-01-22

added - 2020-01-22

  • Added the config setting useAbsoluteUrl to control whether module URLs will be forced to be fully qualified aboslute URLs

changed - 2020-01-22

  • If we're in devMode invalidate the cache immediately
  • If an error is reported, and self::$isHot is true log it as a warning, not an error

Link 1.1.12 · 2019-11-12

fixed - 2019-11-12

  • Fixed an issue with includeFileFromManifest() not working due to recent changes

Link 1.1.11 · 2019-10-15

changed - 2019-10-15

  • Revert a PR that caused Twigpack to no longer gracefully fall back on locally built assets if the webpack-dev-server is not running
  • Add a short timeout to file_get_contents to prevent it from taking too long if the file doesn't exist

Link 1.1.10 · 2019-10-03

changed - 2019-10-03

  • Changed examples to use ’dev’ for local development (instead of ’local’)

Link 1.1.9 · 2019-10-01

added - 2019-10-01

  • Added getModuleHash() function, to grab the hash key of a module

changed - 2019-10-01

  • Fixed an issue where isHot was not set before use
  • Fixed getFileFromManifest() to load files from webpack-dev-server

Link 1.1.8 · 2019-08-06

changed - 2019-08-06

  • Added cacheKeySuffix to the Settings model

Link 1.1.7 · 2019-06-05

changed - 2019-06-05

  • Clarify expected output with no second param
  • Code cleanup

Link 1.1.6 · 2019-05-05

changed - 2019-05-05

  • Fixed an issue where null could potentially be passed in to resolveTemplate()

Link 1.1.5 · 2019-03-24

changed - 2019-03-24

  • Fixed a typo in the twigpack-manifest-cache cache key
  • Changed deprecated \Twig_Markup to \Twig\Markup
  • Elaborated on Twigpack's caching and how to clear it in the README.md

Link 1.1.4 · 2019-01-22

changed - 2019-01-22

  • Handle the case where there is an error decoding the JSON from the manifest
  • Updated the documentation to reflect using @webroot/ by default for the server manifestPath

Link 1.1.3 · 2018-10-31

changed - 2018-10-31

  • Make includeCriticalCssTags() and includeInlineCssTags() soft errors that do nothing if the file is missing

Link 1.1.2 · 2018-10-25

added - 2018-10-25

  • Added the ability for Hot Module Replacement (HMR) to work through Twig error template pages via the errorEntry setting in config.php

Link 1.1.1 · 2018-10-16

changed - 2018-10-16

  • Fixed an issue where if the manifest.json was served remotely via https, Twigpack was unable to load it
  • Made all errors "soft" for missing CSS/JS modules, so a warning will be logged, but life continues on

Link 1.1.0 · 2018-10-09

added - 2018-10-09

  • Strings passed in to manifestPath can now be Yii2 aliases as well
  • Added craft.twigpack.includeFile()
  • Added craft.twigpack.includeFileFromManifest()
  • Added craft.twigpack.includeInlineCssTags()
  • Added craft.twigpack.includeCriticalCssTags()

Link 1.0.5 · 2018-09-28

changed - 2018-09-28

  • Check via empty() rather than !== null when checking the manifest for module entries
  • CSS module loading generates a soft error now, rather than throwing an NotFoundHttpException

Link 1.0.4 · 2018-09-28

added - 2018-09-28

  • Added this.onload=null; to async CSS link tag
  • Added craft.twigpack.includeCssRelPreloadPolyfill()

changed - 2018-09-28

  • Better error reporting if modules don't exist in the manifest

Link 1.0.3 · 2018-09-24

changed - 2018-09-24

  • Allow the manifestPath to be a file system path or a URI

Link 1.0.2 · 2018-09-23

added - 2018-09-23

  • Added getModuleUri() function
  • Added getManifestFile() function

changed - 2018-09-23

  • Fixed return types to allow for null
  • Code refactoring

Link 1.0.1 · 2018-09-22

added - 2018-09-22

  • Better error logging if the manifest file can't be found (check storage/logs/web.log)
  • Throw a NotFoundHttpException if the manifest.json cannot be found

Link 1.0.0 · 2018-09-21

added - 2018-09-21

  • Initial release