Skip to content

Commit

Permalink
fix: usage plugin by builder (#127)
Browse files Browse the repository at this point in the history
  • Loading branch information
ricardogobbosouza committed Mar 23, 2024
1 parent 9317100 commit a16e59e
Showing 1 changed file with 23 additions and 13 deletions.
36 changes: 23 additions & 13 deletions src/module.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import { defineNuxtModule, addVitePlugin, addWebpackPlugin, useLogger } from '@nuxt/kit'
import type { StylelintPluginUserOptions as VitePlugin } from 'vite-plugin-stylelint'
import type { Options as WebpackPlugin } from 'stylelint-webpack-plugin'
import vitePluginStylelint from 'vite-plugin-stylelint'
import StylelintWebpackPlugin from 'stylelint-webpack-plugin'
import { relative } from 'pathe'
import { watch } from 'chokidar'
import { name, version } from '../package.json'
Expand Down Expand Up @@ -33,7 +31,7 @@ export default defineNuxtModule<ModuleOptions>({
failOnWarning: false,
failOnError: true
}),
setup (options, nuxt) {
async setup (options, nuxt) {
if (!nuxt.options.dev) {
return
}
Expand All @@ -58,18 +56,30 @@ export default defineNuxtModule<ModuleOptions>({
nuxt.hook('close', () => watcher.close())
}

addVitePlugin(vitePluginStylelint(options), { server: false })
if (nuxt.options.builder === '@nuxt/vite-builder') {
const vitePluginStylelint = await import('vite-plugin-stylelint').then(m => 'default' in m ? m.default : m)

const webpackOptions = {
...options,
context: nuxt.options.srcDir,
files: options.include,
lintDirtyModulesOnly: !options.lintOnStart
}
addVitePlugin(() => {
return vitePluginStylelint(options)
}, { server: false })
} else if (nuxt.options.builder === '@nuxt/webpack-builder') {
const StylelintWebpackPlugin = await import('stylelint-webpack-plugin').then(m => 'default' in m ? m.default : m)

addWebpackPlugin(() => {
const webpackOptions = {
...options,
context: nuxt.options.srcDir,
files: options.include,
lintDirtyModulesOnly: !options.lintOnStart
}

delete webpackOptions.include
delete webpackOptions.lintOnStart
delete webpackOptions.include
delete webpackOptions.lintOnStart

addWebpackPlugin(new StylelintWebpackPlugin(webpackOptions), { server: false })
return new StylelintWebpackPlugin(webpackOptions)
}, { server: false })
} else {
logger.warn('Unsupported builder ' + nuxt.options.builder + ', Stylelint is not enabled.')
}
}
})

0 comments on commit a16e59e

Please sign in to comment.