Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to build project, isobuild has error: EACCES: permission denied, open ... #12952

Open
trusktr opened this issue Jan 6, 2024 · 2 comments
Labels
Project:Apple Issues on the Apple platforms and software (MacOS, iOS, Safari) Type:Bug

Comments

@trusktr
Copy link
Contributor

trusktr commented Jan 6, 2024

Meteor 2.12

macOS

I am unable to run/build a project, I get an EACCES error from isobuild:

> meteor --exclude-archs web.browser.legacy -p 8765

[[[[[ ~/src/lume+lume/apps/website ]]]]]      

=> Started proxy.                             
=> Started HMR server.                        
=> Meteor 2.14 is available. Check the changelog https://docs.meteor.com/changelog.html and update this project with 'meteor update'.
=> Started MongoDB.                           
/Users/trusktr/.meteor/packages/meteor-tool/.2.12.0.1agbg9i.21x8++os.osx.arm64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.arm64/dev_bundle/lib/node_modules/meteor-promise/promise_server.js:218
      throw error;
      ^

Error: EACCES: permission denied, open '/Users/trusktr/src/lume+lume/apps/website/.meteor/local/.build791258.build/programs/.build918003.web.browser/app/App.js'
    at Object.openSync (fs.js:498:3)
    at Object.writeFileSync (fs.js:1529:35)
    at Object.writeFile (/Users/trusktr/.meteor/packages/meteor-tool/.2.12.0.1agbg9i.21x8++os.osx.arm64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.arm64/tools/fs/tools/fs/files.ts:1522:23)
    at Builder.write (/tools/isobuild/builder.js:333:17)
    at /tools/isobuild/bundler.js:2871:11
    at /tools/isobuild/bundler.js:1796:9
    at /tools/isobuild/bundler.js:1718:11
    at Array.forEach (<anonymous>)
    at /tools/isobuild/bundler.js:1717:20
    at Array.forEach (<anonymous>)
    at ClientTarget.<anonymous> (/tools/isobuild/bundler.js:1716:30)
    at ClientTarget.write (/tools/isobuild/bundler.js:1750:5)
    at /tools/isobuild/bundler.js:2949:30
    at /tools/isobuild/bundler.js:3088:11
    at Array.forEach (<anonymous>)
    at /tools/isobuild/bundler.js:3083:26
    at /tools/isobuild/bundler.js:3456:22
    at Object.capture (/tools/utils/buildmessage.js:283:5)
    at bundle (/tools/isobuild/bundler.js:3262:31)
    at /tools/isobuild/bundler.js:3205:32
    at Slot.withValue (/Users/trusktr/.meteor/packages/meteor-tool/.2.12.0.1agbg9i.21x8++os.osx.arm64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.arm64/dev_bundle/lib/node_modules/@wry/context/lib/context.esm.js:69:29)
    at Object.withCache (/Users/trusktr/.meteor/packages/meteor-tool/.2.12.0.1agbg9i.21x8++os.osx.arm64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.arm64/tools/fs/tools/fs/files.ts:1543:39)
    at Object.bundle (/tools/isobuild/bundler.js:3205:16)
    at /tools/runners/run-app.js:579:24
    at Function.run (/Users/trusktr/.meteor/packages/meteor-tool/.2.12.0.1agbg9i.21x8++os.osx.arm64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.arm64/tools/tool-env/tools/tool-env/profile.ts:289:14)
    at bundleApp (/tools/runners/run-app.js:578:34)
    at AppRunner._runOnce (/tools/runners/run-app.js:625:35)
    at AppRunner._fiber (/tools/runners/run-app.js:947:28)
    at /tools/runners/run-app.js:408:12 {
  errno: -13,
  syscall: 'open',
  code: 'EACCES',
  path: '/Users/trusktr/src/lume+lume/apps/website/.meteor/local/.build791258.build/programs/.build918003.web.browser/app/App.js'
}

It is similar to this issue in the forums:

https://forums.meteor.com/t/error-eacces-permission-denied-rename/57536

Reproduction:

git clone git@github.com:lume/lume.git
cd lume
git checkout meteor-issue-12952
npm run fresh # this checks out git submodules, installs dependencies, and links projects together
cd apps/website/ # this is the meteor app
npm start # runs meteor, causes error

This will cause the above error.

trusktr added a commit to lume/lume that referenced this issue Jan 6, 2024
@trusktr
Copy link
Contributor Author

trusktr commented Jan 6, 2024

This is related to the ecmascript package. When I comment out the package in .meteor/packages, this error goes away, and the server runs fine (it has no import statements in it), but of course the client won't work.

I am able to work around the client not working by removing the few import statements and instead using Package.* to get dependencies in client/entry.ts (compiled to client/entry.js).

The rest of the client is plain vanilla ES modules located inside public/, so no issues with that code, its the browser handling everything at that point (nice!).

I've not had any luck getting native ES modules working yet here:

https://forums.meteor.com/t/attempt-to-import-native-es-modules-in-meteor-3-0-beta-0-no-luck-yet/61085

@trusktr
Copy link
Contributor Author

trusktr commented Jan 7, 2024

Sidenote, this problem is caused when projects in the reproduction's super module repo (similar to a monorepo, but I'm using git submodules to pull in all the packages) are symlinked together with Yarn. This error goes away when things are not symlinked.

TLDR: this might show a problem with isobuild and handling symlinked dependencies in node_modules.

@StorytellerCZ StorytellerCZ added Type:Bug Project:Apple Issues on the Apple platforms and software (MacOS, iOS, Safari) labels Jan 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Project:Apple Issues on the Apple platforms and software (MacOS, iOS, Safari) Type:Bug
Projects
None yet
Development

No branches or pull requests

2 participants