Releases: bem-archive/bem-tools
0.7.1
0.7.0
-
Level scanner no longer fails on symlinks
-
css
tech correctly generates classes for modifiers without values (#425) -
Warning is shown when level does not exists or does not contain
.bem
directory (#418) -
Ability to specify multiple elems in
elem
properties indeps.js
files (#401):({ shouldDeps: { block: 'bla', elem: ['e1', 'e2', 'e3'] } })
is equivalent to:
({ shouldDeps: [ { block: 'bla', elem: 'e1' }, { block: 'bla', elem: 'e2' }, { block: 'bla', elem: 'e3' } })
-
Shortcut for specifying tech dependencies of the same block (#413):
{ block: 'b', tech: 'js', mustDeps: { tech: 'bemhtml' } }
is equivalent to:
{ block: 'b', tech: 'js', mustDeps: { block: 'b', tech: 'bemhtml' } }
-
build command for
bem bench
is customizable viabem-bench-build
script in project'spackage.json
-
GitLibraryNode
specifies git dir explicitly withgit
commands (#355) -
Base tech is selected according to child's
API_VER
. Error is thrown when
base and child techs have differentAPI_VER
(#416) -
It is possible to write tech module as a function (#363):
module.exports = function(BEM) { return { //tech mixin }; }
-
It is possible to write level config as a function (#364):
module.exports = function(BEM) { return { //level mixin }; }
-
baseLevelName
property can be used in level config to specifysimple
or
project
level by name (#367) -
scanner of simple level doesn't ignore dirs like
name.tech
-
deps: possibility to declare dependence without explicitly including item (#459):
{ block: "some-block", mustDeps: [ {block: "other-block", include: false} ] }
In this case,
other-block
won't be included in bundle withsome-block
automatically. But, if
bundle requires bothsome-block
andother-block
,other-block
will always
be included beforesome-block
. -
--no-colors
option to disable colors in terminal -
v1
tech warning shows link to migration instructions -
q-fs
andq-http
libraries replaced withq-io
-
underscore
library replaced withlodash
(#94) -
benchmarks can be built on multiple bundle levels
0.6.16
- Update
csso
withinborschik
dependency to1.3.8
deps.js
: Fix levels cache validity check- Warn on
v1
tech module usage, not creation GitLibraryNode
: add origin parameter to customize remote name- Update
borschik
dependency to0.3.5
- Version-independent solution for
CP#fork
(Node.js 0.6+) - Add tech name and path to
V1
deprecation warning - Fix
bem create level
run without prototype (--level
opt) LibraryNode
: create the leading directories before checkoutbemdecl.js
: Traverse through all fields, not onlymix
andcontent
1.0.0-alpha4
bem
command usage statistics is collected now usinginsight
module- tech/v2.js:
getBuildPaths(decl, levels)
signature extended togetBuildPaths(decl, levels, output, opts)
- tech/v2.js: fixed bug which was causing to pass wrong suffix when calling
getBuildResultChunk()
- v2/deps.js:
filter()
method does use new behaviour compatible with previous one - Dropped external libraries support. Use of
bower
(bower-npm-install
) is suggested instead - .bem/make.js config can use function style for now:
module.exports = function(registry) {
// code within this function body is the same as `make.js` content before
registry.decl(...);
}
-
Added tests for tech modules using
bem-smoke
package -
Dropped node v0.6.x support
-
Added week suffixes map: special suffixes map that is used as a build suffixes map when declaration has dependance by tech
Usual behavior for technology suffixes is considered to be strong-binding, i.e. when dependency item has no technology specified, any file that matches (item path + any build suffix for technology) is included in sources file list.
Another kind of behavior is added, which is considered to be weak-binding — suffixes that are weak don't add files to source files list, unless technology matching the weak-suffix is explicitly specified in the dependency item.
-
Build cache is now per-technonlohy so techs that writes to the same file does not override each others cache.
0.6.15
0.6.14
0.6.13
- tech/v2:
transformBuildDecl()
is reborn and used inbuildByDecl()
- level scanner: use proper suffix for folders representing block with mod and val
- level scanner: don't ignore
block/elem/elem.tech
andblock/mod/mod.tech
kinds of folders - deps.js v2: invalidate when declaration modified date is later than deps.js
0.6.12
-
bem: Add
level-proto
tech that creates levels based on prototypes in.bem/levels/*.js
on project levelExample usage (
.bem/level.js
):exports.getTechs = function() { return { 'docs': 'level-proto', // will create levels <name>.blocks/ with proto in .bem/levels/docs.js 'blocks': 'level-proto' // will create levels <name>.blocks/ with proto in .bem/levels/blocks.js }; };
-
bem: Fix bug in
bem create level
that prevented from creating level without prototype -
bem make: Fix bug in
BemCreateNode
that was causing error when using single tech on different names
(e.g.level-proto
) -
bem make:
require()
in.bem/make.js
configs behaves more correctly now (try to require any dependency
of your project from your.bem/make.js
) -
bem make:
level
property inBlockNode
now initialized on the first access; this helps to deal with levels being
created during thebem make
build process -
API: Export
logger
andtemplate
frombem
module -
API: Add
Node.create()
static method to simplify creation of nodes, see examplevar opts = { // node options }, node = registry .getNodeClass('BemCreateNode') .create(opts);
0.6.11
1.0.0-alpha3
- Remove legacy techs support
- Move
bem bench
support into separate package (see bem-bench) - Remove
bem create block | elem | mod
commands. You should usebem create
command with options instead. Seebem create --help
for more info. - Remove
qq
dependency. If you were usingqq
in your tech modules likevar Q = require('bem').require('qq')
you should migrate to usingq
instead. - Remove
q-fs
andq-http
dependency. If you were usingq-fs
in your tech modules likevar Q = require('bem').require('q-fs')
you should migrate to usingq-io/fs
instead. - Add warning on using tech API V1