-
-
Notifications
You must be signed in to change notification settings - Fork 8
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
[Bug]: Cannot require() ES Module ~ standalone.mjs in a cycle
when Node >=v22.12.0 with Prettier >= 3.5.0
#311
Comments
currently downgraded to get going:
|
Sorry I could not reproduce the error with latest version with prettier 3.5.1 $ node -v
v22.11.0
$ npm list | grep prettier
├── @shufo/prettier-plugin-blade@1.15.3
└── prettier@3.5.1
$ cat package.json
{
"devDependencies": {
"@shufo/prettier-plugin-blade": "^1.15.3",
"prettier": "^3.5.1"
}
}
$ cat .prettierrc.json
{
"plugins": ["@shufo/prettier-plugin-blade"],
"overrides": [
{
"files": ["*.blade.php"],
"options": {
"parser": "blade",
"tabWidth": 4
}
}
]
}
$ ./node_modules/.bin/prettier test.blade.php
@extends('frontend.layouts.app')
@section('title') foo
@endsection
@section('content')
<section id="content">
<div class="container mod-users-pd-h">
<div class="pf-user-header">
<div></div>
<p>@lang('users.index')</p>
</div>
<div class="pf-users-branch">
<ul class="pf-users-branch__list">
@foreach ($users as $user)
<li>
<img src="{{ asset('img/frontend/icon/branch-arrow.svg') }}" alt="branch_arrow">
{{ link_to_route('frontend.users.user.show', $users['name'], $users['_id']) }}
</li>
@endforeach
</ul>
<div class="pf-users-branch__btn">
@can('create', App\Models\User::class)
{!! link_to_route('frontend.users.user.create', __('users.create'), [1, 2, 3], ['class' => 'btn']) !!}
@endcan
</div>
</div>
</div>
</section>
@endsection
@section('footer')
@stop @utqinadhif @rishabkapadia |
macOS 14.7.2
also tried:
|
Thanks |
Uh I understand, it occurs when combination of node >=v23 with prettier-plugin-blade latest version. $ node -v
v23.6.1
$ ./node_modules/.bin/prettier test.blade.php
[error] Cannot require() ES Module /home/shuhei/develop/prettier-plugin-blade-test6/node_modules/prettier/standalone.mjs in a cycle. (from /home/shuhei/develop/prettier-plugin-blade-test6/node_modules/@prettier/plugin-php/standalone.js) Node v22 with latest version was ok. |
Cannot require() ES Module ~ standalone.mjs in a cycle
with Node v23 on latest version
node -v ─╯ ./node_modules/.bin/prettier /media/hdd/local/project/php/l11-sim/resources/views/pdf/display/apm/print/sep.blade.php ─╯ In my case, i use v22.14.0 but error, |
Oh i know, before today, before i update my node, the prettier work well, may be error occurs on >=22.14.0 |
i just tried it with node 22 (& plugin 1.15.3), its not working. i'm on v23 for quite some time (its highly unlikely the cause). faced issues recently (went from 1.13.4 to 1.15.3). Got it working by downgrading to 1.13.4 with node 23 |
@utqinadhif @rishabkapadia Thanks. #311 (comment) was not corret. $ node -v
v22.12.0
$ ./node_modules/.bin/prettier test.blade.php
[error] Cannot require() ES Module /home/shuhei/develop/prettier-plugin-blade-test6/node_modules/prettier/standalone.mjs in a cycle. (from /home/shuhei/develop/prettier-plugin-blade-test6/node_modules/@prettier/plugin-php/standalone.js) v22.11.0 is ok $ node -v
v22.11.0
$ ./node_modules/.bin/prettier test.blade.php
@extends('frontend.layouts.app')
@section('title') foo
@endsection
@section('content')
<section id="content">
<div class="container mod-users-pd-h">
<div class="pf-user-header">
<div></div>
<p>@lang('users.index')</p>
</div>
<div class="pf-users-branch">
<ul class="pf-users-branch__list">
@foreach ($users as $user)
<li>
<img src="{{ asset('img/frontend/icon/branch-arrow.svg') }}" alt="branch_arrow">
{{ link_to_route('frontend.users.user.show', $users['name'], $users['_id']) }}
</li>
@endforeach
</ul>
<div class="pf-users-branch__btn">
@can('create', App\Models\User::class)
{!! link_to_route('frontend.users.user.create', __('users.create'), [1, 2, 3], ['class' => 'btn']) !!}
@endcan
</div>
</div>
</div>
</section>
@endsection
@section('footer')
@stop |
Cannot require() ES Module ~ standalone.mjs in a cycle
with Node v23 on latest versionCannot require() ES Module ~ standalone.mjs in a cycle
when Node >=v22.12.0 with latest version
that worked. thank you. note: if you are using brew, i was not able to install a specific version. instead it kept installing the latest patch (v22.13.1). hence had to install 22.11 via nvm |
Plus above, Downgrading prettier to 3.4.2 also works on node >=22.12.0 and latest prettier-plugin-blade. $ node -v
v23.6.1
$ cat package.json
{
"devDependencies": {
"@shufo/prettier-plugin-blade": "^1.15.3",
"prettier": "3.4.2"
}
}
$ ./node_modules/.bin/prettier test.blade.php
@extends('frontend.layouts.app')
@section('title') foo
@endsection
@section('content')
<section id="content">
<div class="container mod-users-pd-h">
<div class="pf-user-header">
<div></div>
<p>@lang('users.index')</p>
</div>
<div class="pf-users-branch">
<ul class="pf-users-branch__list">
@foreach ($users as $user)
<li>
<img src="{{ asset('img/frontend/icon/branch-arrow.svg') }}" alt="branch_arrow">
{{ link_to_route('frontend.users.user.show', $users['name'], $users['_id']) }}
</li>
@endforeach
</ul>
<div class="pf-users-branch__btn">
@can('create', App\Models\User::class)
{!! link_to_route('frontend.users.user.create', __('users.create'), [1, 2, 3], ['class' => 'btn']) !!}
@endcan
</div>
</div>
</div>
</section>
@endsection
@section('footer')
@stop |
Cannot require() ES Module ~ standalone.mjs in a cycle
when Node >=v22.12.0 with latest versionCannot require() ES Module ~ standalone.mjs in a cycle
when Node >=v22.12.0 with Prettier >= 3.5.0
🙌 after downgrading prettier to 3.4.2, it works on node 22.11.0, 22.12.0, 22.14.0, 23.8.0 |
It seems this prettier's change introduced in 3.5.0 affecting this issue. related issue: prettier/plugin-php#2418 |
For now, i use 3.4.2 and wait for new fixing, |
Hello, I'm from Prettier core team, this should be a Prettier issue, and I'm considering reverting the change mentioned in #311 (comment) @shufo Can you transfer the issue to Prettier (Not sure if it's possible), so we can continue the discussion there. Before Prettier fixes this issue, I'll invgate if this is a different case than prettier/prettier#17139 |
@fisker Thank you fisker! Transfering issue requires both repository write access so I added you to this repository's collabolators. You can transfer this issue if you needed. I don't know what the root cause is now but also I'll investigate it. |
This comment has been minimized.
This comment has been minimized.
Added reproduction https://github.com/fisker/prettier-plugin-blade-311, and remove |
@joyeecheung I just want to let you know that your solution from prettier/prettier#17139 (comment) (replace |
I think this may be a different one, the other one is a race when require and dynamic import happens at the same time, and the fix would be making the loading deterministic, which the Node.js is adding a new error message for (replacing "Cannot read properties of undefined"). This one is probably a real cycle, as the existing error message suggests. Either the cycle needs to be broken/made lazy, or there is another suggestion possible, but it is still a different path. |
Should fixed in Prettier v3.5.2 https://github.com/prettier/prettier/releases/tag/3.5.2 |
FYI I think I figured out what is causing this - fix in nodejs/node#57187 which locally make https://github.com/fisker/prettier-plugin-blade-311 produce
Which is the same as what I see from older Node.js releases without require(esm) e.g. v21 |
Description
after update from 1.15.2 to 1.15.3, prettier not working with caption Cannot require() ES Module /media/hdd/local/project/php/l11-sim/node_modules/prettier/standalone.mjs in a cycle. (from /media/hdd/local/project/php/l11-sim/node_modules/@prettier/plugin-php/standalone.js)
Expected Behavior
i want to normal again
Actual Behavior
this plugin not work after update
Additional Context
version: 1.15.3
OS: linux debian 12
The text was updated successfully, but these errors were encountered: