Release 3.6.1

This commit is contained in:
fisker committed 2025-06-25 14:40:52 +08:00
1 parent cb8af6c59b
commit 2bfff20275
5 files changed
+55 -21

No files matched your search

+1 -1
View File
@@ -26,7 +26,7 @@ Don't fill the form below manually! Let a program create a report for you:
--> -->
**Prettier 3.6.0** **Prettier 3.6.1**
[Playground link](https://prettier.io/playground/#.....) [Playground link](https://prettier.io/playground/#.....)
```sh ```sh
+1 -1
View File
@@ -20,7 +20,7 @@ BEFORE SUBMITTING AN ISSUE:
**Environments:** **Environments:**
- Prettier Version: 3.6.0 - Prettier Version: 3.6.1
- Running Prettier via: <!-- CLI, Node.js API, Browser API, etc. --> - Running Prettier via: <!-- CLI, Node.js API, Browser API, etc. -->
- Runtime: <!-- Node.js v14, Chrome v83, etc. --> - Runtime: <!-- Node.js v14, Chrome v83, etc. -->
- Operating System: <!-- Windows, Linux, macOS, etc. --> - Operating System: <!-- Windows, Linux, macOS, etc. -->
+34
View File
@@ -1,3 +1,37 @@
# 3.6.1
[diff](https://github.com/prettier/prettier/compare/3.6.0...3.6.1)
#### TypeScript: Allow const without initializer ([#17650](https://github.com/prettier/prettier/pull/17650), [#17654](https://github.com/prettier/prettier/pull/17654) by [@fisker](https://github.com/fisker))
<!-- prettier-ignore -->
```jsx
// Input
export const version: string;
// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
| ^
// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
| ^^^^^^^^^^^^^^^
// Prettier 3.6.1
export const version: string;
```
#### Miscellaneous: Avoid closing files multiple times ([#17665](https://github.com/prettier/prettier/pull/17665) by [@43081j](https://github.com/43081j))
When reading a file to infer the interpreter from a shebang, we use the
`n-readlines` library to read the first line in order to get the shebang.
This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if `n-readlines` did not already close
them.
# 3.6.0 # 3.6.0
[diff](https://github.com/prettier/prettier/compare/3.5.3...3.6.0) [diff](https://github.com/prettier/prettier/compare/3.5.3...3.6.0)
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "prettier", "name": "prettier",
"version": "3.7.0-dev", "version": "3.6.1",
"description": "Prettier is an opinionated code formatter", "description": "Prettier is an opinionated code formatter",
"bin": "./bin/prettier.cjs", "bin": "./bin/prettier.cjs",
"repository": "prettier/prettier", "repository": "prettier/prettier",
@@ -21,7 +21,7 @@ Required options:
- **[`parser`](options.md#parser) (or [`filepath`](options.md#file-path))**: One of these options has to be specified for Prettier to know which parser to use. - **[`parser`](options.md#parser) (or [`filepath`](options.md#file-path))**: One of these options has to be specified for Prettier to know which parser to use.
- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource-options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in [https://unpkg.com/browse/prettier@3.6.0/plugins](https://unpkg.com/browse/prettier@3.6.0/plugins). Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON. - **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource-options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in [https://unpkg.com/browse/prettier@3.6.1/plugins](https://unpkg.com/browse/prettier@3.6.1/plugins). Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON.
You need to load the ones that you’re going to use and pass them to `prettier.format` using the `plugins` option. You need to load the ones that you’re going to use and pass them to `prettier.format` using the `plugins` option.
@@ -32,8 +32,8 @@ See below for examples.
### Global ### Global
```html ```html
<script src="https://unpkg.com/prettier@3.6.0/standalone.js"></script> <script src="https://unpkg.com/prettier@3.6.1/standalone.js"></script>
<script src="https://unpkg.com/prettier@3.6.0/plugins/graphql.js"></script> <script src="https://unpkg.com/prettier@3.6.1/plugins/graphql.js"></script>
<script> <script>
(async () => { (async () => {
const formatted = await prettier.format("type Query { hello: String }", { const formatted = await prettier.format("type Query { hello: String }", {
@@ -50,8 +50,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack
```html ```html
<script type="module"> <script type="module">
import * as prettier from "https://unpkg.com/prettier@3.6.0/standalone.mjs"; import * as prettier from "https://unpkg.com/prettier@3.6.1/standalone.mjs";
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.6.0/plugins/graphql.mjs"; import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.6.1/plugins/graphql.mjs";
const formatted = await prettier.format("type Query { hello: String }", { const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql", parser: "graphql",
@@ -64,8 +64,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack
```js ```js
define([ define([
"https://unpkg.com/prettier@3.6.0/standalone.js", "https://unpkg.com/prettier@3.6.1/standalone.js",
"https://unpkg.com/prettier@3.6.0/plugins/graphql.js", "https://unpkg.com/prettier@3.6.1/plugins/graphql.js",
], async (prettier, ...plugins) => { ], async (prettier, ...plugins) => {
const formatted = await prettier.format("type Query { hello: String }", { const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql", parser: "graphql",
@@ -96,8 +96,8 @@ This syntax doesn’t necessarily work in the browser, but it can be used when b
<TabItem value="module" label="Module worker"> <TabItem value="module" label="Module worker">
```js ```js
import * as prettier from "https://unpkg.com/prettier@3.6.0/standalone.mjs"; import * as prettier from "https://unpkg.com/prettier@3.6.1/standalone.mjs";
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.6.01/plugins/graphql.mjs"; import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.6.11/plugins/graphql.mjs";
const formatted = await prettier.format("type Query { hello: String }", { const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql", parser: "graphql",
@@ -110,8 +110,8 @@ const formatted = await prettier.format("type Query { hello: String }", {
```js ```js
importScripts( importScripts(
"https://unpkg.com/prettier@3.6.0/standalone.js", "https://unpkg.com/prettier@3.6.1/standalone.js",
"https://unpkg.com/prettier@3.6.0/plugins/graphql.js", "https://unpkg.com/prettier@3.6.1/plugins/graphql.js",
); );
(async () => { (async () => {
@@ -131,9 +131,9 @@ If you want to format [embedded code](options.md#embedded-language-formatting),
```html ```html
<script type="module"> <script type="module">
import * as prettier from "https://unpkg.com/prettier@3.6.0/standalone.mjs"; import * as prettier from "https://unpkg.com/prettier@3.6.1/standalone.mjs";
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.6.0/plugins/babel.mjs"; import * as prettierPluginBabel from "https://unpkg.com/prettier@3.6.1/plugins/babel.mjs";
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.6.0/plugins/estree.mjs"; import * as prettierPluginEstree from "https://unpkg.com/prettier@3.6.1/plugins/estree.mjs";
console.log( console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", { await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
@@ -149,10 +149,10 @@ The HTML code embedded in JavaScript stays unformatted because the `html` parser
```html ```html
<script type="module"> <script type="module">
import * as prettier from "https://unpkg.com/prettier@3.6.0/standalone.mjs"; import * as prettier from "https://unpkg.com/prettier@3.6.1/standalone.mjs";
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.6.0/plugins/babel.mjs"; import * as prettierPluginBabel from "https://unpkg.com/prettier@3.6.1/plugins/babel.mjs";
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.6.0/plugins/estree.mjs"; import * as prettierPluginEstree from "https://unpkg.com/prettier@3.6.1/plugins/estree.mjs";
import * as prettierPluginHtml from "https://unpkg.com/prettier@3.6.0/plugins/html.mjs"; import * as prettierPluginHtml from "https://unpkg.com/prettier@3.6.1/plugins/html.mjs";
console.log( console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", { await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {