Closed meiyingqishi closed 5 months ago
Same issue here, a project works without turbopack, and fails with this error with turbo.
To: Vercel / Next.js / Turbopack Teams
The integration of SCSS/SASS support in Turbopack could significantly boost its adoption. SCSS compatibility appears to be a critical feature whose absence is currently hindering Turbopack's rise in popularity.
Without this feature Turbopack and --turbo
option can never be said as Production-Ready.
Next.js with Turbopack is now passing all tests we have for Sass support, including importing external packages 🙌
Please give it a try using npm install next@canary
and let me know if you're running into anything else.
@timneutkens Also after saved the changed scss file, the Next.js will never compile again
The latest next@canary
has fixed the import issue, but after changed the scss file, the Next.js will never compile again, i found a already exists issue, #42375
I also created a fully reproduce repo https://github.com/Cow258/next-turbo-scss-demo
packages/client/styles/page/_home.scss
.demo-head
color to red
Tested on next@14.2.0-canary.16
Thanks for the report @Cow258, it only happened to imported files indeed which we didn't have a test for. It's been fixed in https://github.com/vercel/turbo/pull/7813 which will go out on canary on monday.
I just tested on v14.2.0-canary.50
Using turbo
seem slower then without turbo
anyway, the scss hot reload issue has been fixed.
Thanks.
--turbo
About 90ms ~ 120ms (Except for the first compile)
--turbo
About 100ms ~ 200ms
Hi there, @timneutkens
I have tested it, and it is working fine now. No issues. Thanks for your nice work!
Thanks for confirming, closing this issue 👍
This closed issue has been automatically locked because it had no new activity for 2 weeks. If you are running into a similar issue, please create a new issue with the steps to reproduce. Thank you.
Link to the code that reproduces this issue
https://github.com/meiyingqishi/primer-next-demo
To Reproduce
yarn create next-app
.yarn add @primer/css @primer/react styled-components@^5 sass
.export * from "@primer/react";
import { Button } from "./reactComponents";
export default function Home() { return (
); }
./node_modules/@primer/css/index.scss Error evaluating Node.js code SassError: SassError: Can't find stylesheet to import. ╷ 2 │ @import '@primer/primitives/dist/scss/colors/_light.scss’; │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ╵ node_modules/@primer/css/color-modes/themes/light.scss 2:9 @import node_modules/@primer/css/color-modes/index.scss 3:9 @import node_modules/@primer/css/index.scss 14:9 root stylesheet [at /Users/myqs/Downloads/primer-next-demo/node_modules/next/dist/compiled/sass-loader/cjs.js:1:2984] [at Function.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:118035:16)] [at render_closure1.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:101600:12)] [at _RootZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35657:18)] [at _FutureListener.handleError$1 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34182:21)] [at _FuturepropagateToListeners_handleError.call$0 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34488:49)] [at Object._Future__propagateToListeners (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5074:77)] [at _Future._completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34339:9)] [at _AsyncAwaitCompleter.completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33964:12)] [at Object._asyncRethrow (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4862:17)] [at /Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:25361:20] [at _wrapJsFunctionForAsync_closure.$protected (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4887:15)] [at _wrapJsFunctionForAsync_closure.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33983:12)] [at _awaitOnObject_closure0.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33977:25)] [at _RootZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35657:18)] [at _FutureListener.handleError$1 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34182:21)] [at _FuturepropagateToListeners_handleError.call$0 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34488:49)] [at Object._FuturepropagateToListeners (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5074:77)] [at _Future._completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34339:9)] [at _AsyncAwaitCompleter.completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33964:12)] [at Object._asyncRethrow (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4862:17)] [at /Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:18963:20] [at _wrapJsFunctionForAsync_closure.$protected (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4887:15)] [at _wrapJsFunctionForAsync_closure.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33983:12)] [at _awaitOnObject_closure0.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33977:25)] [at _RootZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35657:18)] [at _FutureListener.handleError$1 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34182:21)] [at _Future__propagateToListeners_handleError.call$0 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34488:49)] [at Object._FuturepropagateToListeners (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5074:77)] [at _Future._completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34339:9)] [at _AsyncAwaitCompleter.completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33964:12)] [at Object._asyncRethrow (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4862:17)] [at /Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:18998:20] [at _wrapJsFunctionForAsync_closure.$protected (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4887:15)] [at _wrapJsFunctionForAsync_closure.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33983:12)] [at _awaitOnObject_closure0.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33977:25)] [at _RootZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35657:18)] [at _FutureListener.handleError$1 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34182:21)] [at _FuturepropagateToListeners_handleError.call$0 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34488:49)] [at Object._Future__propagateToListeners (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5074:77)] [at _Future._completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34339:9)] [at _AsyncAwaitCompleter.completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33964:12)] [at Object._asyncRethrow (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4862:17)] [at /Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:80578:24] [at _wrapJsFunctionForAsync_closure.$protected (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4887:15)] [at _wrapJsFunctionForAsync_closure.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33983:12)] [at _awaitOnObject_closure0.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33977:25)] [at _RootZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35657:18)] [at _FutureListener.handleError$1 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34182:21)] [at _FuturepropagateToListeners_handleError.call$0 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34488:49)] [at Object._FuturepropagateToListeners (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5074:77)] [at _Future._completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34339:9)] [at _AsyncAwaitCompleter.completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33964:12)] [at Object._asyncRethrow (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4862:17)] [at /Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:86223:20] [at _wrapJsFunctionForAsync_closure.$protected (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4887:15)] [at _wrapJsFunctionForAsync_closure.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33983:12)] [at _awaitOnObject_closure0.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33977:25)] [at Object._rootRunBinary (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5293:18)] [at StaticClosure. (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:115718:16)]
[at _CustomZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35412:39)]
[at _FutureListener.handleError$1 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34182:21)]
[at _Future propagateToListeners_handleError.call$0 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34488:49)]
[at Object._FuturepropagateToListeners (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5074:77)]
[at _Future._completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34339:9)]
[at _AsyncAwaitCompleter.completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33964:12)]
[at Object._asyncRethrow (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4862:17)]
[at /Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:85796:24]
[at _wrapJsFunctionForAsync_closure.$protected (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4887:15)]
[at _wrapJsFunctionForAsync_closure.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33983:12)]
[at _awaitOnObject_closure0.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33977:25)]
[at Object._rootRunBinary (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5293:18)]
[at StaticClosure. (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:115718:16)]
[at _CustomZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35412:39)]
[at _FutureListener.handleError$1 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34182:21)]
[at _Future propagateToListeners_handleError.call$0 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34488:49)]
[at Object._FuturepropagateToListeners (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5074:77)]
[at _Future._completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34339:9)]
[at _AsyncAwaitCompleter.completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33964:12)]
[at Object._asyncRethrow (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4862:17)]
[at /Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:80660:20]
[at _wrapJsFunctionForAsync_closure.$protected (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4887:15)]
[at _wrapJsFunctionForAsync_closure.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33983:12)]
[at _awaitOnObject_closure0.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33977:25)]
[at Object._rootRunBinary (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5293:18)]
[at StaticClosure. (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:115718:16)]
[at _CustomZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35412:39)]
[at _FutureListener.handleError$1 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34182:21)]
[at _Future propagateToListeners_handleError.call$0 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34488:49)]
[at Object._Future__propagateToListeners (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5074:77)]
[at _Future._completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:34339:9)]
[at _AsyncAwaitCompleter.completeError$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33964:12)]
[at Object._asyncRethrow (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4862:17)]
[at /Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:85162:20]
[at _wrapJsFunctionForAsync_closure.$protected (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:4887:15)]
[at _wrapJsFunctionForAsync_closure.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33983:12)]
[at _awaitOnObject_closure0.call$2 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:33977:25)]
[at Object._rootRunBinary (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:5293:18)]
[at StaticClosure. (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:115718:16)]
[at _CustomZone.runBinary$3$3 (/Users/myqs/Downloads/primer-next-demo/node_modules/sass/sass.dart.js:35412:39)]
Which area(s) are affected? (Select all that apply)
Turbopack (--turbo)
Additional context
PACK-2182