Trio Icon
Trio v6.1.0

The Trio Blog

  1. Latest
  2. Releases
  3. News
  4. Tutorials

Trio v6.1.0

It is with great pleasure that I announce the release of Trio v6.1.0.

Highlights

This release of Trio continues to improve upon the integration of external processes (e.g. npm scripts, Grunt, Webpack, Parcel, Browserify) with Trio's build & release workflows.

This Is A Minor Release

Issue #137: Refactor Trio to use BrowserSync's watcher to watch for changes to the public build folder and to respond to "change" events by reloading the browser.

Issue #138: Auto increment the port number that BrowserSync uses since BrowserSync no longer does so when the default port number (3000) is being used.

Changelog

Please see the changelog for details.

Trio v6.0.4

It is with great pleasure that I announce the release of Trio v6.0.4.

Highlights

This Is A Patch Release

Issue #135: Upgrade Node to v14 LTS and upgrade Trio's dependencies.

Issue #134: Module lib/generator/sassRender.js must call toString() when writing the postcssResult.map to a file.

Issue #136: A circular dependency discovered in lib/utils/getFileModifiedTime.js after upgrading Node to v14 LTs and Trio's dependencies.

Changelog

Please see the changelog for details.

Trio v6.0.3

It is with great pleasure that I announce the release of Trio v6.0.3.

Highlights

This Is A Patch Release

This release addresses issue #133 and now refreshes the browser whenever a hidden file is added, changed and deleted.

Changelog

Please see the changelog for details.

Trio v6.0.2

It is with great pleasure that I announce the release of Trio v6.0.2.

Highlights

This Is A Patch Release

This release addresses issue #131 and now checks if the source folders actually exists prior to copying their files.

Changelog

Please see the changelog for details.

Trio v6.0.1

It is with great pleasure that I announce the release of Trio v6.0.1.

Highlights

This Is A Patch Release

This release address a bug that was introduced with Trio v6.0.0 and its support for user created folders in the root/source/ folder. These folders, if not ignored, can pollute Trio's metadata and interfere with Trio's build and release workflows. This release corrects that by ignoring these folders which users now identify through the new ignore configuration property.

Changelog

Please see the changelog for details.

Trio v6.0.0

It is with great pleasure that I announce the release of Trio v6.0.0.

Highlights

An Improved Release Workflow That Now Supports JavaScript Bundling

Prior to Trio v6.0.0 cache busting was initiated by running the command trio release -b. The problem is that this didn't allow the developer to run their NPM package.json scripts, such as those that might bundle their JavaScript modules, before they cache busted the site. Removing the -b option from the trio release command and implementing a standalone trio cachebust command that can be called after running trio release corrects this and allows for an "open" workflow, such as using NPM scripts in your package.json file

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "parcelBuild": "parcel watch source/jsBundle/main.js --no-cache --out-dir public/scripts --public-url /scripts/",
    "trioBuild": "trio b -I",
    "build": "concurrently --kill-others \"npm run trioBuild\" \"npm run parcelBuild\" ",
    "release": "trio r && parcel build source/jsBundle/main.js --no-cache --out-dir release/scripts --public-url /scripts/ && trio cachebust -m && trio s -r"
},

for development builds

# run npm script to bundle JavaScript into public/scripts folder
npm run build

and for release builds.

# run npm script to bundle JavaScript into release/scripts folder
npm run release

If your site uses a JavaScript bundler (e.g. Parcel, Browserify, Webpack) to package its runtime JavaScript then do not host those modules in root/source/scripts. Instead, create a new folder in root/source, for example jsBundle, and host them there. Please see Project Structure for details.

New CSS Source Map Generation Options

Trio now offers sensible configuration options for controlling the generation of CSS map files for both development and release builds.

From within trio.json you can now configure source map generation using the following:

"sassSourceMaps": {
    "development": [true | false],
    "release": [true | false]
}

Both development and release builds default to true.

Improved Cache Busting, A Breaking Change

Trio v6.0.0 has upgraded its toolchain to use version v1.0.0 of the browser cache buster Buster, which eliminates a bug that would result in URLs being hashed twice. This would occur when a URL points to a file whose file name is used in part in another file's name. This naming convention is common for JavaScript map files and CSS map files.

For example, when hashing the file names for the files [mybundle.js] and [mybundle.js.map] Buster would ultimately hash [mybundle.js.map] as [hash-hash-mybundle.js.map].

Please note that beginning with Buster v1.0.0, your site's internal URLs are required to be site releative. This requirement is a breaking change from previous versions of Buster. What does this mean for your existing Trio projects that are using Trio's cache busting? Existing projects' internal URLs that aren't already site relative will need to be converted. Please see Linking Conventions and Buster's documentation for details.

Changelog

Please see the changelog for details.

Trio v4.2.0: Improved Developer Experience

Trio v4.2.0

It is with great pleasure that I announce the release of Trio v4.2.0.

Trio now ignores and reports fragments that do not have front matter defined.

Prior to v4.2.0, fragment files that did not have front matter generated errors that were confusing and unnecessary (as far as the user is concerned). These fragments are now reported to the console but otherwise ignored during the build process.

Trio v4.1.0: Tag-Based Callbacks

Trio v4.1.0

It is with great pleasure that I announce the release of Trio v4.1.0.

Trio now supports callbacks declared on tags that are replaced by include and fragment content.

Prior to v4.1.0, tag-based callbacks declared on tags that are replaced by an include's or a fragment's content are never registered and therefore never called. Trio V4.1.0 corrects this omission and now supports tag-based callbacks on these tags.

Support for these callbacks will allows you to directly target these tags in your tag-based callbacks using the callback's $tag parameter.

Please note that this new behavior doesn't impact how Trio outputs these tags for development and release builds. As always, when building for development, Trio will still comment out these tags in the generated HTML document, and when building for release, Trio will not output these tags in the generated HTML document.

What's Coming In Trio v4.1.0

While you are enjoying the recently released Trio v4.0.0 we want you to know that Trio v4.1.0 is already in the testing phase and will be released shortly.

Although it wasn't explicitly stated in the documentation, tag-based callbacks that are declared on tags that are replaced by an include's or a fragment's content are never registered and therefore never called. Trio V4.1.0 corrects this omission and now supports tag-based callbacks on these tags.

Support for these callbacks will allows you to directly target these tags in your tag-based callbacks using the callback's $tag parameter.

Please note that this new behavior doesn't impact how Trio outputs these tags for development and release builds. As always, when building for development, Trio will still comment out these tags in the generated HTML document, and when building for release, Trio will not output these tags in the generated HTML document.

If you would like to be notified when Trio v4.1.0 drops then please consider following @gettriossg on Twitter.