Обнаружить внутри плагина Gatsby, если текущий проект использует машинопись? - PullRequest
1 голос
/ 23 июня 2019

Возможно ли это?Может быть, использовать что-то вроде https://www.gatsbyjs.org/docs/node-apis/#resolvableExtensions?

заранее спасибо

1 Ответ

1 голос
/ 23 июня 2019

Хм, возможно, вы можете подключиться к onCreateWebpackConfig и проверить расширения там:

// gatsby-node.js

exports.onCreateWebpackConfig = ({ getConfig }) => {
  const { extensions } = getConfig().resolve
  const hasTs = extensions.find(ext => ['.ts', '.tsx'].includes(ext))
  console.log(hasTs) // undefined if no ts
}

Но если вам нужна эта информация заранее, самый верный способ - проверить, есть ли в каталоге src какие-либо ts-файлы с чем-то вроде glob

const path = require(`path`)
const glob = require(`glob`)

const checkTs = ({ directory }) => {
  const srcFolder = path.join(directory, 'src')
  const tsFiles = glob.sync(`${srcFolder}/**/*.ts{,x}`)
  return (tsFiles.length > 0)
}

exports.onPreInit = ({ store }) => {
  const { directory } = store.getState().program
  const hasTs = checkTs({ directory })
  console.log({ hasTs })
}

Мне любопытно, зачем вам эта информация? Если бы я реализовывал функцию, специфичную для машинописного текста, я бы доверил пользователям использовать ее, только если они используют машинописный текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...