update module resolution (#128)

master
Brad Cornes 2020-06-16 10:41:26 +01:00
parent 44131edd93
commit eb28c540c3
4 changed files with 24 additions and 10 deletions

View File

@ -108,6 +108,7 @@
"pkg-up": "^3.1.0",
"postcss": "^7.0.27",
"postcss-selector-parser": "^6.0.2",
"resolve-from": "^5.0.0",
"rimraf": "^3.0.2",
"semver": "^7.3.2",
"stack-trace": "0.0.10",

View File

@ -2,12 +2,17 @@ import * as path from 'path'
import stackTrace from 'stack-trace'
import pkgUp from 'pkg-up'
import { isObject } from './isObject'
import resolveFrom from 'resolve-from'
import importFrom from 'import-from'
export async function getBuiltInPlugins({ cwd, resolvedConfig }) {
const tailwindBase = path.dirname(
resolveFrom(cwd, 'tailwindcss/package.json')
)
try {
// TODO: add v0 support ("generators")
return importFrom(cwd, 'tailwindcss/lib/corePlugins.js').default({
return importFrom(tailwindBase, './lib/corePlugins.js').default({
corePlugins: resolvedConfig.corePlugins,
})
} catch (_) {

View File

@ -2,6 +2,7 @@ import extractClassNames from './extractClassNames'
import Hook from './hook'
import dlv from 'dlv'
import dset from 'dset'
import resolveFrom from 'resolve-from'
import importFrom from 'import-from'
import chokidar from 'chokidar'
import semver from 'semver'
@ -55,13 +56,16 @@ export default async function getClassNames(
invariant(configPath.length === 1, 'No Tailwind CSS config found.')
configPath = configPath[0]
const configDir = path.dirname(configPath)
postcss = importFrom(configDir, 'postcss')
const tailwindBase = path.dirname(
resolveFrom(configDir, 'tailwindcss/package.json')
)
postcss = importFrom(tailwindBase, 'postcss')
tailwindcss = importFrom(configDir, 'tailwindcss')
version = importFrom(configDir, 'tailwindcss/package.json').version
try {
// this is not required
browserslistModule = importFrom(configDir, 'browserslist')
browserslistModule = importFrom(tailwindBase, 'browserslist')
} catch (_) {}
const sepLocation = semver.gte(version, '0.99.0')

View File

@ -1,9 +1,13 @@
import resolveFrom from 'resolve-from'
import importFrom from 'import-from'
import * as path from 'path'
import decache from './decache'
export default function resolveConfig({ cwd, config }) {
let resolve = x => x
const tailwindBase = path.dirname(
resolveFrom(cwd, 'tailwindcss/package.json')
)
let resolve = (x) => x
if (typeof config === 'string') {
if (!cwd) {
@ -14,18 +18,18 @@ export default function resolveConfig({ cwd, config }) {
}
try {
resolve = importFrom(cwd, 'tailwindcss/resolveConfig.js')
resolve = importFrom(tailwindBase, './resolveConfig.js')
} catch (_) {
try {
const resolveConfig = importFrom(
cwd,
'tailwindcss/lib/util/resolveConfig.js'
tailwindBase,
'./lib/util/resolveConfig.js'
)
const defaultConfig = importFrom(
cwd,
'tailwindcss/stubs/defaultConfig.stub.js'
tailwindBase,
'./stubs/defaultConfig.stub.js'
)
resolve = config => resolveConfig([config, defaultConfig])
resolve = (config) => resolveConfig([config, defaultConfig])
} catch (_) {}
}