or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

configuration-options.mdcore-configuration.mdflat-config-utilities.mdindex.mdutility-functions.md

core-configuration.mddocs/

0

# Core Configuration

1

2

Primary function for creating Nuxt-optimized ESLint configurations with extensive customization options and automatic feature detection.

3

4

## Capabilities

5

6

### Create Configuration for Nuxt

7

8

Creates an array of ESLint flat configs for Nuxt 3 projects with intelligent defaults and extensive customization options.

9

10

```typescript { .api }

11

/**

12

* Create an array of ESLint flat configs for Nuxt 3, based on the given options.

13

* Accepts appending user configs as rest arguments from the second argument.

14

*

15

* For Nuxt apps, it's recommended to use @nuxt/eslint module instead.

16

* @param options - Configuration options for features and directories

17

* @param userConfigs - Additional user-provided configurations to append

18

* @returns FlatConfigComposer for further configuration chaining

19

*/

20

function createConfigForNuxt(

21

options?: NuxtESLintConfigOptions,

22

...userConfigs: ResolvableFlatConfig[]

23

): FlatConfigComposer;

24

25

interface NuxtESLintConfigOptions {

26

/** Feature configuration options */

27

features?: NuxtESLintFeaturesOptions;

28

/** Directory structure configuration */

29

dirs?: DirectoriesConfig;

30

}

31

```

32

33

**Usage Examples:**

34

35

```typescript

36

import { createConfigForNuxt } from "@nuxt/eslint-config";

37

38

// Minimal configuration with all defaults

39

export default createConfigForNuxt();

40

41

// Enable TypeScript with strict rules

42

export default createConfigForNuxt({

43

features: {

44

typescript: {

45

strict: true,

46

tsconfigPath: "./tsconfig.json"

47

}

48

}

49

});

50

51

// Full-featured configuration

52

export default createConfigForNuxt({

53

features: {

54

standalone: true,

55

typescript: true,

56

stylistic: {

57

indent: 2,

58

quotes: "single",

59

semi: false

60

},

61

tooling: {

62

jsdoc: true,

63

unicorn: true,

64

regexp: true

65

},

66

formatters: {

67

css: "prettier",

68

html: "prettier",

69

markdown: "dprint"

70

},

71

import: {

72

package: "eslint-plugin-import-x"

73

}

74

},

75

dirs: {

76

src: ["./src", "./app"],

77

components: ["./src/components", "./components"],

78

pages: ["./src/pages", "./pages"]

79

}

80

},

81

// Additional custom rules

82

{

83

rules: {

84

"no-console": "warn",

85

"prefer-const": "error"

86

}

87

});

88

```

89

90

### Feature Configuration Options

91

92

Comprehensive configuration interface for enabling/disabling and customizing various ESLint features.

93

94

```typescript { .api }

95

interface NuxtESLintFeaturesOptions {

96

/**

97

* Setup basic JavaScript, TypeScript and Vue plugins and rules.

98

* You might want to disable it when using other ESLint config that handles basic setup.

99

* @default true

100

*/

101

standalone?: boolean;

102

103

/**

104

* Enable rules for Nuxt module authors or library authors.

105

* @experimental Changes might not follow semver

106

* @default false

107

*/

108

tooling?: boolean | ToolingOptions;

109

110

/**

111

* Enable the import plugin

112

* @default true

113

*/

114

import?: boolean | ImportPluginOptions;

115

116

/**

117

* Enable stylistic ESLint rules for formatting and code style check

118

* @see https://eslint.style/guide/config-presets

119

* @default false

120

*/

121

stylistic?: boolean | StylisticCustomizeOptions;

122

123

/**

124

* Enable formatters to handle formatting for different file types.

125

* Requires eslint-plugin-format to be installed.

126

* @default false

127

*/

128

formatters?: boolean | OptionsFormatters;

129

130

/**

131

* Options for Nuxt specific rules

132

*/

133

nuxt?: NuxtSpecificOptions;

134

135

/**

136

* Enable TypeScript support. Can also be an object to config the options.

137

* By default it enables automatically when typescript is installed in the project.

138

*/

139

typescript?: boolean | TypeScriptOptions;

140

}

141

142

interface ToolingOptions {

143

/**

144

* Enable RegExp rules

145

* @see https://github.com/ota-meshi/eslint-plugin-regexp

146

* @default true

147

*/

148

regexp?: boolean;

149

150

/**

151

* Enable Unicorn rules

152

* @see https://github.com/sindresorhus/eslint-plugin-unicorn

153

* @default true

154

*/

155

unicorn?: boolean;

156

157

/**

158

* Enable jsdoc rules

159

* @default true

160

*/

161

jsdoc?: boolean;

162

}

163

164

interface TypeScriptOptions {

165

/**

166

* Enable strict rules

167

* @see https://typescript-eslint.io/users/configs#strict

168

* @default true

169

*/

170

strict?: boolean;

171

172

/**

173

* Path to the tsconfig file, when this is provided, type-aware rules will be enabled.

174

*/

175

tsconfigPath?: string;

176

}

177

```

178

179

### Directory Configuration

180

181

Configure directory structure for Nuxt project organization and rule application.

182

183

```typescript { .api }

184

interface DirectoriesConfig {

185

/** Nuxt source directory */

186

src?: string[];

187

/** Root directory for nuxt project */

188

root?: string[];

189

/** Directory for pages */

190

pages?: string[];

191

/** Directory for layouts */

192

layouts?: string[];

193

/** Directory for components */

194

components?: string[];

195

/** Directory for components with prefix (ignores vue/multi-word-component-names) */

196

componentsPrefixed?: string[];

197

/** Directory for composables */

198

composables?: string[];

199

/** Directory for plugins */

200

plugins?: string[];

201

/** Directory for modules */

202

modules?: string[];

203

/** Directory for middleware */

204

middleware?: string[];

205

/** Directory for server */

206

servers?: string[];

207

}

208

```

209

210

**Usage Examples:**

211

212

```typescript

213

// Custom directory structure

214

export default createConfigForNuxt({

215

dirs: {

216

root: ["."],

217

src: ["./src"],

218

pages: ["./src/pages"],

219

components: ["./src/components", "./src/ui"],

220

composables: ["./src/composables", "./src/utils"],

221

plugins: ["./src/plugins"],

222

middleware: ["./src/middleware"],

223

servers: ["./src/server"]

224

}

225

});

226

227

// Multi-app setup

228

export default createConfigForNuxt({

229

dirs: {

230

root: ["./apps/web", "./apps/admin"],

231

src: ["./apps/web/src", "./apps/admin/src"],

232

components: ["./shared/components", "./apps/*/components"]

233

}

234

});

235

```

236

237

### Nuxt-Specific Options

238

239

Configuration options specific to Nuxt projects and development patterns.

240

241

```typescript { .api }

242

interface NuxtSpecificOptions {

243

/**

244

* Sort keys in nuxt.config to maintain a consistent order

245

* @default true when features.stylistic is enabled

246

*/

247

sortConfigKeys?: boolean;

248

}

249

```

250

251

### Import Plugin Options

252

253

Configuration for the import/export linting plugin with support for different implementations.

254

255

```typescript { .api }

256

interface ImportPluginOptions {

257

/**

258

* The import plugin to use

259

* @default 'eslint-plugin-import-x'

260

*/

261

package?: 'eslint-plugin-import-lite' | 'eslint-plugin-import-x';

262

}

263

```