postcss / postcss-cli

CLI for postcss
Other
840 stars 93 forks source link

TypeError: Expected `cwd` to be of type `string` but received type `undefined` #265

Closed bartdelange closed 5 years ago

bartdelange commented 5 years ago

When executing any cli command it fails and gives the error below, this however does work if I use yarn. (has also been referenced here: #264)

Example command (the style.css is just an empty file):

"start": "postcss --use autoprefixer -o ./style.css ./style.css"

Stacktrace:


TypeError: Expected `cwd` to be of type `string` but received type `undefined`
    at module.exports (/path/to/project/node_modules/dir-glob/index.js:44:25)
    at globDirs (/path/to/project/node_modules/globby/index.js:58:9)
    at getPattern (/path/to/project/node_modules/globby/index.js:61:64)
    at Promise.all.globTasks.map.task (/path/to/project/node_modules/globby/index.js:72:69)
    at Array.map (<anonymous>)
    at module.exports (/path/to/project/node_modules/globby/index.js:72:41)
    at Promise.resolve.then (/path/to/project/node_modules/postcss-cli/index.js:58:14)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:744:11)
    at findNodeScript.then.existing (/[user]/.nvm/versions/node/v10.12.0/lib/node_modules/npm/node_modules/libnpx/index.js:268:14)
jelgersma commented 5 years ago

I have the exact same error.

NPM Version: 6.4.1 Node Version: 10.15.0

RyanZim commented 5 years ago

Have you tried a fresh installation?

bartdelange commented 5 years ago

I have, weirdly enough just running the example in postcss/autoprefixer works as well, so it must be a version issue, but npm ls lists the same versions

npm install postcss-cli autoprefixer
npx postcss *.css --use autoprefixer -d build/
RyanZim commented 5 years ago

Yeah, there was a sub-dependency way down in the dependency tree that had a bug and broke semver. Your postcss-cli versions will be the same; that's expected, but what's important is that the sub-dependency is updated.

bartdelange commented 5 years ago

So manually forcing the sub dep version should fix it (and which)?

bartdelange commented 5 years ago

It does indeed, after manually installing the globby version (and then doing a fresh install leaving globby out of the package.json) it runs. I think is seems to be a cache issue or something even though the cache should be self healing

kevva commented 5 years ago

Yes, this was fixed in https://github.com/sindresorhus/globby/pull/99. Reinstalling postcss-cli should fix it.

mattfelten commented 5 years ago

npm update globby --depth 5 fixed it for me. NPM was keeping the version locked to a lower version because deduping or something.

targos commented 5 years ago

The best would be to update globby to version ^9.0.0 in this package.

RyanZim commented 5 years ago

@targos PR welcome

targos commented 5 years ago

https://github.com/postcss/postcss-cli/pull/270