next.js: operation not permitted
Verify canary release
- I verified that the issue exists in the latest Next.js canary release
Provide environment information
Operating System:
Platform: win32
Arch: x64
Version: Windows 10 Pro
Binaries:
Node: 16.15.0
npm: N/A
Yarn: N/A
pnpm: N/A
Relevant packages:
next: 12.3.2-canary.0
eslint-config-next: 12.3.1
react: 18.2.0
react-dom: 18.2.0
What browser are you using? (if relevant)
No response
How are you deploying your application? (if relevant)
No response
Describe the Bug
When I run the build I have this error
> Build error occurred
[Error: EPERM: operation not permitted, scandir 'C:\Users\axell\Documents\Development\pikas-template\apps\app\.next\standalone\apps\app\node_modules\next'] {
errno: -4048,
code: 'EPERM',
syscall: 'scandir',
path: 'C:\\Users\\axell\\Documents\\Development\\pikas-template\\apps\\app\\.next\\standalone\\apps\\app\\node_modules\\next'
}
And in my next.config.js I have this
require('dotenv-flow').config({ path: '../..' });
const withPWA = require('next-pwa');
const withPlugins = require('next-compose-plugins');
const withBundleAnalyzer = require('@next/bundle-analyzer')({
enabled: process.env.ANALYZE === 'true',
});
const { join } = require('path');
const withTM = require('next-transpile-modules')([]);
const plugins = [withTM, withBundleAnalyzer, withPWA];
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
swcMinify: true,
reactStrictMode: true,
output: 'standalone',
experimental: {
outputFileTracingRoot: join(__dirname, '../../'),
},
i18n: {
locales: ['en', 'fr'],
defaultLocale: 'en',
},
pwa: {
disable: process.env.NODE_ENV === 'development',
dest: 'public',
},
};
module.exports = withPlugins(plugins, nextConfig);
I found these issues that talk about it too: #36645 #1537
Expected Behavior
I just want to build my app
Link to reproduction
https://github.com/Achaak/pikas-template
To Reproduce
Use this command
pnpm i
pnpm generate
pnpm build:packages
cd apps/app
pnpm build <-- The bug appears here
About this issue
- Original URL
- State: open
- Created 2 years ago
- Reactions: 16
- Comments: 17 (2 by maintainers)
I encounter the same issue with this setup:
We use standalone output in combination with outputFileTracingRoot for monorepo usage.
If I run
pnpm build
with normal privileges I get ascandir
error:errno: -4048, code: 'EPERM', syscall: 'scandir',
Same command with admin privileges gives me themkdir
error:errno: -4048, code: 'EPERM', syscall: 'mkdir',
12.1.7-canary.48
produces the same error, so I think it’s always been thereThis is my minimal reproduction example, it’s basically just 3 steps (powershell):
In my case, this issue occurs on
output: "standalone"
. https://github.com/vercel/next.js/blob/4125069840ca98981f0e7796f55265af04f3e903/packages/next/src/build/utils.ts#L1957 It seems likefs.symlink
is not supported ideally at Windows (at least at mine).I fixed it by enabling Windows Developer Mode
I have the same problem with the following setup:
For now, deleting .next folder for almost every build is the solution.
I can confirm this exact problem with Windows + pnpm. .next/standalone/node_modules includes dependencies in the .pnpm folder instead of the root node_modules folder, leading to
Error: EPERM: operation not permitted, stat 'C:\GitHub\project\.next\standalone\node_modules\next'
It works fine with npm as dependencies are in root node_modules
Unsure if this stackoverflow issue is related, then it would mean this is an old issue https://stackoverflow.com/questions/70895922/pnpm-linking-with-standalone-nextjs-build
After several tests with colleagues, the problem would be on windows.
And yes when I remove
output: "standalone"
ansoutputFileTracingRoot
its work but I need itSame error for me.
I have just tried it in Linux and it works perfectly. So is Windows + pnpm specific. Turbotrace on Windows does not fix the issue either. And building the standalone folder on Linux, which works, and moving it to Windows and running it still causes the error.