0
votes

Comment résoudre le "Module non trouvé: Erreur: Impossible de résoudre 'fs'" dans nuxt.js?

Je suis un peu nouveau sur node, mais après de nombreuses recherches, il semble que «fs» ait cassé beaucoup de choses dans le passé. J'ai rencontré plusieurs packages que j'ai essayé d'installer via npm et j'ai rencontré le Module not found: Error: Can't resolve 'fs' trop l'erreur Module not found: Error: Can't resolve 'fs' .

J'ai lancé l'installation de npm et fs télécharge un package d'espace réservé , mais je suis vraiment à l'arrêt car un package (parmi plusieurs) a toujours une dépendance sur fs.

Presque toutes les solutions que je trouve ont abouti à déclarer fs comme vide dans la section nœud des paramètres du pack Web:

extend(config, ctx) {
  // Run ESLint on save
  if (ctx.isDev && ctx.isClient) {
    config.module.rules.push({
      enforce: 'pre',
      test: /\.(js|vue)$/,
      loader: 'eslint-loader',
      exclude: /(node_modules)/
    })
  }
}

Malheureusement, j'utilise Vue.js et nuxt et il n'y a pas de fichier de paramètres webpack (que je connaisse). J'ai essayé de l'ajouter dans mon nuxt_config.js mais je n'ai pas réussi. extend (config, ctx) {config.node = {fs: "vide"}; }

Existe-t-il un moyen d'exécuter l'exclusion à l'intérieur de nuxt_config? De plus, existe-t-il un moyen de l'exécuter tout en préservant mes paramètres pour exécuter eslint lors de l'enregistrement?

node: {
  fs: 'empty'
},

Merci.


0 commentaires

3 Réponses :


1
votes

La suggestion est correcte, selon le webpack voir la documentation, vous devez définir le module fs sur 'empty' .

Avez-vous essayé de l'insérer dans votre configuration nuxt sur la configuration de niveau supérieur dans le bloc de construction?

build: {
  extend (config, { isDev, isClient }) {

     config.node: {
        fs: 'empty'
      }

     // ....
  }
}


3 commentaires

Merci beaucoup, @adamrights. Je pensais l'avoir fait de la façon dont vous avez présenté, mais de toute évidence, je ne l'ai pas - cela fonctionne correctement comme vous l'avez présenté. Puis-je demander un suivi: existe-t-il un moyen de combiner ce que vous avez avec mes paramètres eslint-on-save if (ctx.isDev... ci-dessus à l'intérieur du bloc d'extension?


{ isDev, isClient } est l'objet ctx dans votre exemple. essayez ... build: {... // EXTEND extend (config, {isClient}) {if (isClient) {config.module.rules.push ({enforce: 'pre', test: /\.js$/ , loader: 'eslint-loader', exclude: / (node_modules) /,}, {enforce: 'pre', test: /\.vue$/, loader: 'eslint-loader', exclure: / (node_modules) / ,})}}},


Merci - j'ai pu l'obtenir ... j'ai réalisé que j'utilisais juste une virgule pour séparer les deux sections et que je dois la supprimer. Merci beaucoup pour l'aide!



0
votes

Juste au cas où cela aiderait. Dans mon cas, cette erreur est apparue tout d'un coup et n'a pas été en mesure de dire pourquoi. Après avoir tout essayé (suppression et réinstallation des packages npm, etc ...), j'ai découvert que VS CODE faisait automatiquement référence à un package dans un fichier que je venais de sauvegarder et je ne l'ai pas remarqué.

Dans mon cas, il a ajouté import { query } from 'express'.

Supprimé la ligne et tout a fonctionné à nouveau.


0 commentaires

0
votes

L'utilisation peut changer selon les versions.

Dans mon cas, je dois définir confing.node avec le caractère "=".

    build: {
        extend (config, { isDev, isClient }) { 
            config.node = {
                fs: "empty"
            }
        })
    }


0 commentaires