Releases: bigbite/build-tools
1.2.0 β3
⚠️ This is a Beta release. Do not use in production.
Whats New?
WordPress Dependency Extraction
Support for usage of @wordpress
packages within code to allow for more native and standard usage of Gutenberg elements.
// Previously
const { registerBlockType } = wp.block;
const { __ } = wp.i18n;
// Now supported:
import { registerBlockType } from '@wordpress/blocks';
import { __ } from '@wordpress/i18n';
Accessing Dependency Array
As outlined in the Working with your Assets page on the wiki, asset information is placed in global PHP constants from the inc/asset-settings.php file. If we have an entry point of editor.js
in a plugin/project called test-plugin
that takes advantage of @wordpress
packages, a new constant will be defined.
Constants with the suffix of _DEPENDENCIES
will contant the array required.
define( 'TEST_PLUGIN_EDITOR_CSS', 'editor.css' );
define( 'TEST_PLUGIN_EDITOR_JS', 'editor.js' );
define( 'TEST_PLUGIN_EDITOR_DEPENDENCIES', ["react","wp-blocks","wp-i18n"] );
define( 'TEST_PLUGIN_VERSION', 'v0.0.0' );
Any entrypoints and subsequent scripts without dependencies will contain an empty array.
Aliases
To aide with directory traversion within components or files we can add a number of predefined aliases that allow for easier time with referencing directories based around a common structure that we use for our projects. This means we can avoid backstepping through directories to get back to a base directory. For example we may find we have a situation where we're backstepping to get to the components
directory like this;
const { MyButtons } from '../../../components/buttons';
With aliases, this can easily be replaced with the following if required;
const { MyButtons } from '@Components/buttons';
The following are currently supported;
@Components
→{project-root}/src/components
Components
→{project-root}/src/components
@Static
→{project-root}/src/static
Static
→{project-root}/src/static
@Utils
→{project-root}/src/utils
Utils
→{project-root}/src/utils
Change Log
- Adds alias resolving support to projects.
- Adds support for
@wordpress
packages using DependencyExtraction as a custom extension of@wordpress/dependency-extraction-webpack-plugin
package. See #60. - Removes
HTMLWebpack
plugin. - Adds custom
TemplateGenerator
plugin. - Refactors
assetSettings
template function.
1.2.0 β2
⚠️ This is a Beta release. Do not use in production.
Whats New?
WordPress Dependency Extraction
Support for usage of @wordpress
packages within code to allow for more native and standard usage of Gutenberg elements.
// Previously
const { registerBlockType } = wp.block;
const { __ } = wp.i18n;
// Now supported:
import { registerBlockType } from '@wordpress/blocks';
import { __ } from '@wordpress/i18n';
Aliases
To aide with directory traversion within components or files we can add a number of predefined aliases that allow for easier time with referencing directories based around a common structure that we use for our projects. This means we can avoid backstepping through directories to get back to a base directory. For example we may find we have a situation where we're backstepping to get to the components
directory like this;
const { MyButtons } from '../../../components/buttons';
With aliases, this can easily be replaced with the following if required;
const { MyButtons } from '@Components/buttons';
The following are currently supported;
@Components
→{project-root}/src/components
Components
→{project-root}/src/components
@Static
→{project-root}/src/static
Static
→{project-root}/src/static
@Utils
→{project-root}/src/utils
Utils
→{project-root}/src/utils
Change Log
- Adds alias resolving support to projects.
- Adds support for
@wordpress
packages using the WordPress dependency extraction package.
1.2.0 β1
⚠️ This is a Beta release. Do not use in production.
Whats New?
Aliases
To aide with directory traversion within components or files we can add a number of predefined aliases that allow for easier time with referencing directories based around a common structure that we use for our projects. This means we can avoid backstepping through directories to get back to a base directory. For example we may find we have a situation where we're backstepping to get to the components
directory like this;
const { MyButtons } from '../../../components/buttons';
With aliases, this can easily be replaced with the following if required;
const { MyButtons } from '@Components/buttons';
The following are currently supported;
@Components
→{project-root}/src/components
Components
→{project-root}/src/components
@Static
→{project-root}/src/static
Static
→{project-root}/src/static
@Utils
→{project-root}/src/utils
Utils
→{project-root}/src/utils
Change Log
- Adds alias resolving support to projects.
1.1.0
Introduces helper commands for recursively npm install
and npm ci
multiple projects across themes and plugins.
Commands
Install
Installing recursively can be done with a simple install command. This would replace npm install
when working locally.
build-tools install
CI
When working in a CI environment, you can use the same ci command as expected from npm ci
.
build-tools ci
with Additional Arguments
Sometimes you may want to have additional parameters for your installs, for example you may want to rebuild all available package lock files. So, you can chain arguments like below;
build-tools install -- --package-lock-only
Change Log
- Adds
build-tools install
command. - Adds
build-tools ci
command.
1.0.0
Build Tools aims to cater for various needs of the Big Bite team when creating new sites, plugins and themes for projects. This means we need to have a tooling structure that allows us to develop in isolation when building a plugin or theme along side a whole site project without having to switch or configure tooling for when we change contexts.
See the wiki for configuration and further feature details.
Features
- Compile plugins and themes in one command from the project root.
- Target specific plugins and/or themes from a single command.
- Support for multiple entrypoints.
1.0.0 RC4
What's Changed
- Add jsdoc to plugin list by @ampersarnie in #38
Full Changelog: 1.0.0-rc.3...1.0.0-rc.4
1.0.0 RC3
What's Changed
- Add complexity rule by @ampersarnie in #36
- Add JSDoc to ES Linting config. by @ampersarnie in #31
Full Changelog: 1.0.0-rc.2...1.0.0-rc.3
1.0.0 RC2
What's Changed
- Add MIT license by @ampersarnie in #26
- Check for CI environment. by @ampersarnie in #18
- Remove package scripts by @ampersarnie in #25
- Implement prettier and eslint rules by @ampersarnie in #27
- Disable viewBox removal in SVGO by @ampersarnie in #33
Full Changelog: 1.0.0-rc.1...1.0.0-rc.2
1.0.0 RC1
What's Changed
- CLI command for Build tools by @ampersarnie in #11
- fix: updated packages after dependabot warnings by @ampersarnie in #19
Full Changelog: 1.0.0-beta.6...1.0.0-rc.1
1.0.0-beta.6
What's Changed
- Fix package regex target for CI envs by @ampersarnie in #15
Full Changelog: 1.0.0-beta.5...1.0.0-beta.6