60d5c9615c
This PR improves the RSC plugin for SWC to throw an error when the `"use client"` directive is in the top level, but not before other statements / expressions. For example: Code: ```js import 'react' 'use client' ``` Error: ``` The "use client" directive must be placed before other expressions. Move it to the top of the file to resolve this issue. ,---- 3 | 'use client' : ^^^^^^^^^^^^ `---- ``` ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have a helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [x] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have a helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm build && pnpm lint` - [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md) Co-authored-by: JJ Kasper <jj@jjsweb.site>
38 lines
1.2 KiB
Text
38 lines
1.2 KiB
Text
node_modules
|
|
**/.next/**
|
|
**/_next/**
|
|
**/dist/**
|
|
e2e-tests/**
|
|
examples/with-eslint/**
|
|
examples/with-typescript-eslint-jest/**
|
|
examples/with-kea/**
|
|
examples/with-custom-babel-config/**
|
|
examples/with-flow/**
|
|
examples/with-jest/**
|
|
examples/with-mobx-state-tree/**
|
|
examples/with-mobx/**
|
|
packages/next/bundles/webpack/packages/*.runtime.js
|
|
packages/next/bundles/webpack/packages/lazy-compilation-*.js
|
|
packages/next/compiled/**/*
|
|
packages/react-refresh-utils/**/*.js
|
|
packages/react-dev-overlay/lib/**
|
|
**/__tmp__/**
|
|
.github/actions/next-stats-action/.work
|
|
.github/actions/issue-validator/index.mjs
|
|
packages/next-codemod/transforms/__testfixtures__/**/*
|
|
packages/next-codemod/transforms/__tests__/**/*
|
|
packages/next-codemod/**/*.js
|
|
packages/next-codemod/**/*.d.ts
|
|
packages/next-env/**/*.d.ts
|
|
packages/create-next-app/templates/**
|
|
test/integration/eslint/**
|
|
test/integration/script-loader/**/*
|
|
test/development/basic/legacy-decorators/**/*
|
|
test/production/emit-decorator-metadata/**/*.js
|
|
test/e2e/app-dir/rsc-errors/app/swc/use-client/page.js
|
|
test-timings.json
|
|
packages/next-swc/crates/**
|
|
bench/nested-deps/pages/**
|
|
bench/nested-deps/components/**
|
|
packages/next-bundle-analyzer/index.d.ts
|
|
examples/with-typescript-graphql/lib/gql/
|