Closed frufrufrufrufru closed 3 years ago
Hi, in theory I think it should work like this. I've not used it with Nuxt.js myself so let me know how you get on.
Install postcss and flex-gap-polyfill as a dev dependency.
npm install postcss flex-gap-polyfill --save-dev
Then configure nuxt.config.js
like this
// nuxt.config.js
export default {
build: {
postcss: {
plugins: {
'flex-gap-polyfill': {},
},
// ...
}
}
}
Oh, I've already done that and it doesn't work. 😢
By the way, PostCSS keeps sending warns:
WARN You did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
You know what I vaguely remember getting something like that when I did a fresh install of Nuxt.js a few months ago with another plugin. I'll investigate see if I can figure anything out. Are you able to try another PostCSS plugin and let me know if it does the same thing?
Ok, I tried it with postcss-responsive-type
and it doesn't seem to work either.
But the most interesting thing is that it tries to use this module because I got an exception:
ERROR Cannot find module 'postcss-responsive-type'
So I installed that npm i postcss-responsive-type --save-dev
and got the same output again:
WARN You did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
I can see other people reporting similar issues with webpack. https://github.com/webpack-contrib/postcss-loader/issues/405
I'm looking for possible causes. Will let you know if I find anything.
I'm at a loss at the moment as to how to fix it. It seems like it could be an issue with different frameworks migrating to PostCSS 8. If you find anything let me know, I'll do the same.
Ok, I'll try to find something. I will try to roll back to an older version of PostCSS, who knows.
I installed the previous version (7) of PostCSS and it looks like it works!
I installed the previous version (7) of PostCSS and it looks like it works!
But not with postcss-gap
:
Error: PostCSS plugin postcss-gap requires PostCSS 8.
Hi, after doing some investigation I've found that Nuxt.js still requires PostCSS 7 as a dependency and I'm pretty sure this is causing the issue. I've tried manually upgrading to PostCSS 8 but this causes issues with Nuxt.js. As a temporary fix for now, you could rollback flex-gap-polyfill
to version 1.0.4
this was before I updated to PostCSS 8.
npm install flex-gap-polyfill@1.0.4 --save-dev
Yes, thanks, it works! I'll wait for the update.
Apparently I found another bug, I will open a new issue.
Maybe this helps https://github.com/nuxt/postcss8
@h0merjam, thank you, it works! It works, but not with flex-gap-polyfill
😢, @limitlessloop, for some reason I'm getting this:
> test@1.0.0 dev C:\Users\i\Projects\test
> nuxt
i Listening on: http://localhost:3000/
i Preparing project for development
i Initial build may take a while
i Discovered Components: .nuxt/components/readme.md
√ Builder initialized
√ Nuxt files generated
i Compiling Server
i Compiling Client
√ Server: Compiled with some errors in 6.00s
√ Client: Compiled with some errors in 6.73s
Module build failed (from
./node_modules/@nuxt/postcss8/node_modules/postcss-loader/dist/cjs.js):
TypeError: parse is not a function
at C:\Users\i\Projects\test\components\Feature\Feature.vue:1:1
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:326:13
at Array.forEach (<anonymous>)
at rewriteMargin
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:308:16)
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:599:13
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:115:18
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:74:18
at Root.each
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:60:16)
at Root.walk
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:71:17)
at Root.walkRules
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:113:19)
at Object.Once
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:531:12)
at LazyResult.runOnRoot
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:301:23)
at LazyResult.runAsync
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:355:26)
at async Object.loader
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss-loade
r\dist\index.js:95:14)
@
./node_modules/vue-style-loader??ref--7-oneOf-1-0!./node_modules/@nuxt/postcss8/
node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/vue-loader/
lib/loaders/stylePostLoader.js!./node_modules/@nuxt/postcss8/node_modules/postcs
s-loader/dist/cjs.js??ref--7-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??r
ef--7-oneOf-1-3!./node_modules/vue-loader/lib??vue-loader-options!./components/F
eature/Feature.vue?vue&type=style&index=0&lang=scss& 4:14-439 15:3-20:5
16:22-447
@ ./components/Feature/Feature.vue?vue&type=style&index=0&lang=scss&
@ ./components/Feature/Feature.vue
@ ./.nuxt/components/plugin.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi ./node_modules/eventsource-polyfill/dist/browserify-eventsource.js
(webpack)-hot-middleware/client.js?reload=true&timeout=30000&ansiColors=&overlay
Styles=&path=%2F__webpack_hmr%2Fclient&name=client ./.nuxt/client.js
Module build failed (from
./node_modules/@nuxt/postcss8/node_modules/postcss-loader/dist/cjs.js):
TypeError: parse is not a function
at C:\Users\i\Projects\test\components\Footer\Footer.vue:7:1
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:326:13
at Array.forEach (<anonymous>)
at rewriteMargin
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:308:16)
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:599:13
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:115:18
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:74:18
at Root.each
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:60:16)
at Root.walk
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:71:17)
at Root.walkRules
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:113:19)
at Object.Once
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:531:12)
at LazyResult.runOnRoot
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:301:23)
at LazyResult.runAsync
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:355:26)
at async Object.loader
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss-loade
r\dist\index.js:95:14)
@
./node_modules/vue-style-loader??ref--7-oneOf-1-0!./node_modules/@nuxt/postcss8/
node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/vue-loader/
lib/loaders/stylePostLoader.js!./node_modules/@nuxt/postcss8/node_modules/postcs
s-loader/dist/cjs.js??ref--7-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??r
ef--7-oneOf-1-3!./node_modules/vue-loader/lib??vue-loader-options!./components/F
ooter/Footer.vue?vue&type=style&index=0&lang=scss& 4:14-438 15:3-20:5 16:22-446
@ ./components/Footer/Footer.vue?vue&type=style&index=0&lang=scss&
@ ./components/Footer/Footer.vue
@ ./.nuxt/components/plugin.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi ./node_modules/eventsource-polyfill/dist/browserify-eventsource.js
(webpack)-hot-middleware/client.js?reload=true&timeout=30000&ansiColors=&overlay
Styles=&path=%2F__webpack_hmr%2Fclient&name=client ./.nuxt/client.js
Module build failed (from
./node_modules/@nuxt/postcss8/node_modules/postcss-loader/dist/cjs.js):
TypeError: parse is not a function
at C:\Users\i\Projects\test\components\Header\Header.vue:1:1
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:326:13
at Array.forEach (<anonymous>)
at rewriteMargin
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:308:16)
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:599:13
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:115:18
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:74:18
at Root.each
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:60:16)
at Root.walk
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:71:17)
at Root.walkRules
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:113:19)
at Object.Once
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:531:12)
at LazyResult.runOnRoot
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:301:23)
at LazyResult.runAsync
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:355:26)
at async Object.loader
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss-loade
r\dist\index.js:95:14)
@
./node_modules/vue-style-loader??ref--7-oneOf-1-0!./node_modules/@nuxt/postcss8/
node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/vue-loader/
lib/loaders/stylePostLoader.js!./node_modules/@nuxt/postcss8/node_modules/postcs
s-loader/dist/cjs.js??ref--7-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??r
ef--7-oneOf-1-3!./node_modules/vue-loader/lib??vue-loader-options!./components/H
eader/Header.vue?vue&type=style&index=0&lang=scss& 4:14-438 15:3-20:5 16:22-446
@ ./components/Header/Header.vue?vue&type=style&index=0&lang=scss&
@ ./components/Header/Header.vue
@ ./.nuxt/components/plugin.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi ./node_modules/eventsource-polyfill/dist/browserify-eventsource.js
(webpack)-hot-middleware/client.js?reload=true&timeout=30000&ansiColors=&overlay
Styles=&path=%2F__webpack_hmr%2Fclient&name=client ./.nuxt/client.js
Module build failed (from
./node_modules/@nuxt/postcss8/node_modules/postcss-loader/dist/cjs.js):
TypeError: parse is not a function
at C:\Users\i\Projects\test\components\Main\Main.vue:1:1
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:326:13
at Array.forEach (<anonymous>)
at rewriteMargin
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:308:16)
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:599:13
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:115:18
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:74:18
at Root.each
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:60:16)
at Root.walk
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:71:17)
at Root.walkRules
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:113:19)
at Object.Once
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:531:12)
at LazyResult.runOnRoot
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:301:23)
at LazyResult.runAsync
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:355:26)
at async Object.loader
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss-loade
r\dist\index.js:95:14)
@
./node_modules/vue-style-loader??ref--7-oneOf-1-0!./node_modules/@nuxt/postcss8/
node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/vue-loader/
lib/loaders/stylePostLoader.js!./node_modules/@nuxt/postcss8/node_modules/postcs
s-loader/dist/cjs.js??ref--7-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??r
ef--7-oneOf-1-3!./node_modules/vue-loader/lib??vue-loader-options!./components/M
ain/Main.vue?vue&type=style&index=0&lang=scss& 4:14-436 15:3-20:5 16:22-444
@ ./components/Main/Main.vue?vue&type=style&index=0&lang=scss&
@ ./components/Main/Main.vue
@ ./.nuxt/components/plugin.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi ./node_modules/eventsource-polyfill/dist/browserify-eventsource.js
(webpack)-hot-middleware/client.js?reload=true&timeout=30000&ansiColors=&overlay
Styles=&path=%2F__webpack_hmr%2Fclient&name=client ./.nuxt/client.js
Module build failed (from
./node_modules/@nuxt/postcss8/node_modules/postcss-loader/dist/cjs.js):
TypeError: parse is not a function
at C:\Users\i\Projects\test\components\Menu\Menu.vue:1:1
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:326:13
at Array.forEach (<anonymous>)
at rewriteMargin
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:308:16)
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:599:13
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:115:18
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:74:18
at Root.each
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:60:16)
at Root.walk
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:71:17)
at Root.walkRules
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:113:19)
at Object.Once
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:531:12)
at LazyResult.runOnRoot
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:301:23)
at LazyResult.runAsync
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:355:26)
at async Object.loader
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss-loade
r\dist\index.js:95:14)
@
./node_modules/vue-style-loader??ref--7-oneOf-1-0!./node_modules/@nuxt/postcss8/
node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/vue-loader/
lib/loaders/stylePostLoader.js!./node_modules/@nuxt/postcss8/node_modules/postcs
s-loader/dist/cjs.js??ref--7-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??r
ef--7-oneOf-1-3!./node_modules/vue-loader/lib??vue-loader-options!./components/M
enu/Menu.vue?vue&type=style&index=0&lang=scss& 4:14-436 15:3-20:5 16:22-444
@ ./components/Menu/Menu.vue?vue&type=style&index=0&lang=scss&
@ ./components/Menu/Menu.vue
@ ./.nuxt/components/plugin.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi ./node_modules/eventsource-polyfill/dist/browserify-eventsource.js
(webpack)-hot-middleware/client.js?reload=true&timeout=30000&ansiColors=&overlay
Styles=&path=%2F__webpack_hmr%2Fclient&name=client ./.nuxt/client.js
Module build failed (from
./node_modules/@nuxt/postcss8/node_modules/postcss-loader/dist/cjs.js):
TypeError: parse is not a function
at C:\Users\i\Projects\test\components\Models\Models.vue:1:1
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:326:13
at Array.forEach (<anonymous>)
at rewriteMargin
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:308:16)
at
C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:599:13
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:115:18
at
C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\co
ntainer.js:74:18
at Root.each
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:60:16)
at Root.walk
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:71:17)
at Root.walkRules
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\c
ontainer.js:113:19)
at Object.Once
(C:\Users\i\Projects\test\node_modules\flex-gap-polyfill\dist\index.js:531:12)
at LazyResult.runOnRoot
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:301:23)
at LazyResult.runAsync
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss\lib\l
azy-result.js:355:26)
at async Object.loader
(C:\Users\i\Projects\test\node_modules\@nuxt\postcss8\node_modules\postcss-loade
r\dist\index.js:95:14)
@
./node_modules/vue-style-loader??ref--7-oneOf-1-0!./node_modules/@nuxt/postcss8/
node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/vue-loader/
lib/loaders/stylePostLoader.js!./node_modules/@nuxt/postcss8/node_modules/postcs
s-loader/dist/cjs.js??ref--7-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??r
ef--7-oneOf-1-3!./node_modules/vue-loader/lib??vue-loader-options!./components/M
odels/Models.vue?vue&type=style&index=0&lang=scss& 4:14-438 15:3-20:5 16:22-446
@ ./components/Models/Models.vue?vue&type=style&index=0&lang=scss&
@ ./components/Models/Models.vue
@ ./.nuxt/components/plugin.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi ./node_modules/eventsource-polyfill/dist/browserify-eventsource.js
(webpack)-hot-middleware/client.js?reload=true&timeout=30000&ansiColors=&overlay
Styles=&path=%2F__webpack_hmr%2Fclient&name=client ./.nuxt/client.js
i Waiting for file changes
i Memory usage: 182 MB (RSS: 304 MB)
i Listening on: http://localhost:3000/
Some frameworks seem to be having issues with some dependencies. Does it work if you manually install postcss-values-parser
?
npm install --save-dev `postcss-values-parser`
Yes, it helped! Thanks!
Ok thanks, I'll look into what's going on with the dependencies, possibly I'm not bundling them correctly.
Hey @frufrufrufrufru just wanted to say thanks for all your feedback. I think this should be working now including the dependency issue.
Hi! How it can be used with Nuxt.js?
I found this, but there is only an example of adding a plugin. Or am I missing something?
So how can I do something like this?