How to find list of unique affixes given a list of words?

An affix can be a prefix (before word), infix (in the middle of a word), or suffix (after word). I have a list of 200k+ latin/greek names used in biological taxonomy. It turns out there is no centralized list of all the affixes used in the taxonomy, unfortunately, other than this very basic list.

The question is, how can I take that 200k+ list of latin/greek names, and divide it into a list of affixes (ideally using just plain JavaScript)?

I don’t really know where to begin on this one. If I construct a trie, I need to somehow instead test for specific chunks of words. Or if the chunk can be extended, don’t include the chunk until we reach a final extension of some sort…

const fs = require('fs')
const words = fs.readFileSync(`/Users/lancepollard/Downloads/all.csv`, 'utf-8').trim().split(/n+/)
const trie = { children: {} }

words.forEach(word => addToTrie(trie, word))

function addToTrie(trie, word) {
  let letters = word.trim().split('')
  let node = trie
  let i = 0
  while (i < letters.length) {
    let letter = letters[i++]
    node = node.children[letter] = node.children[letter] || { children: {} }
  }
  node.isWord = true
}

It doesn’t need to be exact, like each affix actually means something, it can be dirty (in that, some words mean something, some words don’t). But it shouldn’t just list every permutation of a word’s letters sort of thing. It should include things which are “potential affix candidates”, which are chunks which appear more than once in the list. This will at least get me partway there, and I can then manually go through and look up the definitions for each of these “chunks”. Ideally, it should also tell whether it is a prefix/infix/suffix. Maybe the output is a CSV format affix,position.