egoist / bili

Bili makes it easier to bundle JavaScript libraries.

Home Page:https://bili.egoist.sh

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

bili --bundle-node-modules omits modules in v5

chocolateboy opened this issue · comments

Bili: v5+ | Node.js: v14.6.0 | OS: Linux (Arch)

I'm trying to bundle node_modules dependencies in a UMD build. This works fine in bili v4 (v4.10.1), but appears to silently omit many dependencies in v5 (v5.0.1, v5.0.5).

Output

v4 (bundles 10/10 modules)

$ ./node_modules/.bin/bili --verbose --bundle-node-modules --module-name Test --format umd -d dist src/test.ts

Bundled colorette because ./src/test.ts imported it.
Bundled is-promise because ./src/test.ts imported it.
Bundled just-safe-get because ./src/test.ts imported it.
Bundled left-pad because ./src/test.ts imported it.
Bundled lodash because ./src/test.ts imported it.
Bundled tiny-once because ./src/test.ts imported it.
Bundled chalk because ./src/test.ts imported it.
Bundled is-observable because ./src/test.ts imported it.
Bundled observable-to-promise because ./src/test.ts imported it.
Bundled zen-observable because ./src/test.ts imported it.

success Bundled src/test.ts in umd format (1.8s)

v5 (bundles 4/10 modules)

$ ./node_modules/.bin/bili --verbose --bundle-node-modules --module-name Test --format umd -d dist src/test.ts

Bundled colorette because ./src/test.ts imported it.
Bundled lodash because ./src/test.ts imported it.
Bundled chalk because ./src/test.ts imported it.
Bundled zen-observable because ./src/test.ts imported it.

success Bundled src/test.ts in umd format (1.8s)

The environment is the same for both commands, e.g.:

src/test.ts

import chalk               from 'chalk'
import { green }           from 'colorette'
import isObservable        from 'is-observable'
import isPromise           from 'is-promise'
import get                 from 'just-safe-get'
import leftPad             from 'left-pad'
import _                   from 'lodash'
import observableToPromise from 'observable-to-promise'
import once                from 'tiny-once'
import Observable          from 'zen-observable'

console.log(chalk.red("Hello, world!"))
console.log(get)
console.log(green("Hello, world!"))
console.log(isObservable)
console.log(isPromise)
console.log(leftPad)
console.log(_)
console.log(Observable)
console.log(observableToPromise)
console.log(once)

babel.config.js

module.exports = {
    presets: ['bili/babel'],
    plugins: [],
}

tsconfig.json

{
    "compilerOptions": {
        "allowSyntheticDefaultImports": true
    }
}

devDependencies

  • @babel/core@7.11.1
  • rollup-plugin-typescript2@0.27.1
  • typescript@3.9.7