2016-10-27 5 views
1

je dois analyser une chaîne JSX en réaction, comme cet autre threadBabel-core ne fonctionne pas: Un groupe de messages « Module not found »

La seule réponse était d'utiliser-core babel, qui, malheureusement, est ne travaille pas et n'a aucune idée d'où aller à partir d'ici. Voici la trace d'erreur que je reçois chaque fois que j'utiliser require ('babel-core') dans mon dossier:

2016-10-27 16:07:38,914 [INFO] vm-agent.webpack: WARNING in ./~/babel-core/lib/transformation/file/index.js 
2016-10-27 16:07:38,914 [INFO] vm-agent.webpack: Critical dependencies: 
2016-10-27 16:07:38,914 [INFO] vm-agent.webpack: 510:24-39 the request of a dependency is an expression 
2016-10-27 16:07:38,914 [INFO] vm-agent.webpack: 709:16-34 the request of a dependency is an expression 
2016-10-27 16:07:38,915 [INFO] vm-agent.webpack: @ ./~/babel-core/lib/transformation/file/index.js 510:24-39 709:16-34 
2016-10-27 16:07:38,915 [INFO] vm-agent.webpack: 
2016-10-27 16:07:38,915 [INFO] vm-agent.webpack: ERROR in ./~/babel-core/lib/api/node.js 
2016-10-27 16:07:38,915 [INFO] vm-agent.webpack: Module not found: Error: Cannot resolve module 'fs' in /opt/.pyenv/versions/3.5.2/envs/vma/ui_cache/node/node_modules/babel-core/lib/api 
2016-10-27 16:07:38,915 [INFO] vm-agent.webpack: @ ./~/babel-core/lib/api/node.js 58:10-23 
2016-10-27 16:07:38,922 [INFO] vm-agent.webpack: 
2016-10-27 16:07:38,922 [INFO] vm-agent.webpack: ERROR in ./~/babel-core/lib/transformation/file/options/build-config-chain.js 
2016-10-27 16:07:38,922 [INFO] vm-agent.webpack: Module not found: Error: Cannot resolve module 'fs' in /opt/.pyenv/versions/3.5.2/envs/vma/ui_cache/node/node_modules/babel-core/lib/transformation/file/options 
2016-10-27 16:07:38,922 [INFO] vm-agent.webpack: @ ./~/babel-core/lib/transformation/file/options/build-config-chain.js 31:10-23 
2016-10-27 16:07:38,923 [INFO] vm-agent.webpack: 
2016-10-27 16:07:38,923 [INFO] vm-agent.webpack: ERROR in ./~/babel-core/lib/helpers/resolve.js 
2016-10-27 16:07:38,923 [INFO] vm-agent.webpack: Module not found: Error: Cannot resolve module 'module' in /opt/.pyenv/versions/3.5.2/envs/vma/ui_cache/node/node_modules/babel-core/lib/helpers 
2016-10-27 16:07:38,923 [INFO] vm-agent.webpack: @ ./~/babel-core/lib/helpers/resolve.js 34:14-31 
2016-10-27 16:07:38,923 [INFO] vm-agent.webpack: 
2016-10-27 16:07:38,924 [INFO] vm-agent.webpack: ERROR in ./~/convert-source-map/index.js 
2016-10-27 16:07:38,924 [INFO] vm-agent.webpack: Module not found: Error: Cannot resolve module 'fs' in /opt/.pyenv/versions/3.5.2/envs/vma/ui_cache/node/node_modules/convert-source-map 
2016-10-27 16:07:38,924 [INFO] vm-agent.webpack: @ ./~/convert-source-map/index.js 2:9-22 
2016-10-27 16:07:38,924 [INFO] vm-agent.webpack: 
2016-10-27 16:07:38,924 [INFO] vm-agent.webpack: ERROR in ./~/debug/node.js 
2016-10-27 16:07:38,924 [INFO] vm-agent.webpack: Module not found: Error: Cannot resolve module 'fs' in /opt/.pyenv/versions/3.5.2/envs/vma/ui_cache/node/node_modules/debug 
2016-10-27 16:07:38,925 [INFO] vm-agent.webpack: @ ./~/debug/node.js 163:15-28 
2016-10-27 16:07:38,925 [INFO] vm-agent.webpack: 
2016-10-27 16:07:38,925 [INFO] vm-agent.webpack: ERROR in ./~/debug/node.js 
2016-10-27 16:07:38,925 [INFO] vm-agent.webpack: Module not found: Error: Cannot resolve module 'net' in /opt/.pyenv/versions/3.5.2/envs/vma/ui_cache/node/node_modules/debug 

En cas de besoin, voici mon fichier webpack:

module.exports = { 
    entry: './src/app.js', 
    output: { 
     path: './react', 
     filename: 'main.js' 
    }, 
    module: { 
     loaders: [{ 
      test: /\.js$/, 
      exclude: /node_modules/, 
      loader: 'babel-loader', 
      query: { 
       presets: ['es2015', 'react'] 
      } 

     }, 
     { test: /\.json$/, loader: 'json-loader' }, 
     ] 
    }, 
    resolve: { 
     extensions: ['', '.js', '.json'] 
    } 
}; 

Répondre

0

J'ai eu la même problème lors de l'utilisation sur le front-end. Maintenant, je me sers côté serveur et convertissant le résultat en JSON avec:

JSON.stringify(require("babel-core").transform(code, { 
 
    presets: ["react"] 
 
}))

Et il fonctionne, mais je ne peux pas eval le résultat.

edit: Je réussi à eval le résultat en utilisant les réponses de ce fil Specify scope for eval() in JavaScript?

var evalReact = function(React) { 
 
    var React = React 
 
    return function(str) {return eval(str)} 
 
} 
 

 
let fnEvalReact = evalReact(React) 
 
var Compo = fnEvalReact(JSON.parse(component).code)