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
相关产品推荐
相关产品推荐

