mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
fd62817bba
[ci skip]
2.5 KiB
2.5 KiB
date: 2020-11-03 title: "0.78.0" description: "0.78.0" categories: ["Releases"]
This release finally brings full [Hugo Modules](https://gohugo.io/hugo-modules/) support to [js.Build](https://gohugo.io/hugo-pipes/js/), curtsy of he new plugin API in the really, really fast [ESBuild](https://github.com/evanw/esbuild) by [@evanw](https://github.com/evanw).
Some notes on the improvements in this release:
- Now
js.Build
fully supports the virtual union file system in Hugo Modules. Any import inside your JavaScript components will resolve starting from the top component mount inside/assets
with a fallback to the traditional "JS way" (node_modules
etc.) - You can now pass configuration data from the templates to your scripts via a new
params
option. - Hugo now writes a
jsconfig.js
file inside/assets
(you can turn it off) with import mappings to help editors such as VS Code with intellisense/navigation, which is especially useful when there is no common root and the source lives inside some temporary directory. - We have also improved the build errors you get from
js.Build
. In server mode you will get a preview of the failing lines and in the console you will get a link to the location.
Read more about this in the documentation, but a short usage example would look like:
In the template:
{{ $js := resources.Get "js/main.js" | js.Build (dict "params" (dict "api" "https://example.org/api" ) }}
And then in a JavaScript component:
import * as params from '@params';
// Wil resolve to one of `hello.{js,ts,tsx,jsx}` inside `assets/my/module`.
import { hello } from 'my/module/hello';
var api = params.api;
hello();