You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prettier在VS Code保存格式化与npm命令执行格式化结果不一致的问题求助

Prettier在VS Code保存格式化与npm命令执行格式化结果不一致的问题求助

最近碰到个挠头的问题:Prettier在VS Code里保存自动格式化,和通过npm命令执行格式化的结果居然不一样!核心问题卡在导入语句的排序上——npm命令完全不动错位的导入,但VS Code点一下保存就自动把它移到正确位置了,我实在搞不懂这是为啥。

给大家看下具体的代码情况:

初始错误的代码(./file.ts)

import { jwtGroupClaimToRolesDomain, ScopeIds } from '@invison/shared';

import { Injectable, NestMiddleware } from '@nestjs/common';

import { ConfigService } from '@nestjs/config';

import { Response } from 'express';

import { Logger } from 'winston';

import OktaJwtVerifier = require('@okta/jwt-verifier'); // WRONG PLACE!!!!!

import { InvisonLoggerService } from '../logger/invison-logger.service';

import {
extractBearerToken,
generateAnonymousUser,
generateInternalUserFromClaims,
IInvisonJwtClaims,
UserRequest,
} from './user-shared';

执行npm run prettier --write ./file.ts后的结果

执行完命令代码完全没变化,那个导入还是待在错误的位置,和上面的初始代码一模一样。

VS Code保存后的正确代码

import { jwtGroupClaimToRolesDomain, ScopeIds } from '@invison/shared';

import { Injectable, NestMiddleware } from '@nestjs/common';

import { ConfigService } from '@nestjs/config';

import { Response } from 'express';

import { Logger } from 'winston';

import { InvisonLoggerService } from '../logger/invison-logger.service';

import {
extractBearerToken,
generateAnonymousUser,
generateInternalUserFromClaims,
IInvisonJwtClaims,
UserRequest,
} from './user-shared';

import OktaJwtVerifier = require('@okta/jwt-verifier'); // NOW IT'S CORRECT

我的Prettier配置文件(.prettierrc)

{
  "printWidth": 120,
  "singleQuote": true,
  "useTabs": false,
  "tabWidth": 2,
  "semi": true,
  "bracketSpacing": true
}

我已经反复确认过,VS Code里的Prettier插件和npm命令用的是同一个.prettierrc配置文件,但为啥npm执行的时候就是不做导入排序呢?有没有小伙伴遇到过类似的问题,或者知道问题出在哪?

备注:内容来源于stack exchange,提问作者Ewan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:03:01