2017-10-19 74 views
0

我正在尝试设置我的代码库的某些部分的服务器呈现,它正在被webpack捆绑在一起。我有明确的服务器,并设置了路线,当然,我现在碰到:在节点之前运行webpack?

(function (exports, require, module, __filename, __dirname) { import React from 'react' 
                   ^^^^^^ 

SyntaxError: Unexpected token import 
    at createScript (vm.js:56:10) 
    at Object.runInThisContext (vm.js:97:10) 
    at Module._compile (module.js:542:28) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (./server/index.js:3:67) 

这有意义的,因为节点不能解析我的客户端代码库已经捆绑了。那么解决这个问题的最好方法是什么?

目前我使用的WebPack 3,用一吨的插件和alieses的,和.babelrc文件

+0

为什么不检查一下,看看你是否做了错误的事情,或者你的节点设置中可能只是缺少了一些东西https://github.com/babel/example-node-server – Maru

回答

0

你需要创建了两个的WebPack配置。一个用于客户端代码,一个用于服务器。解释如何为服务器代码设置webpack需要一段时间。结账https://github.com/catamphetamine/universal-webpack欲了解更多信息。我建议你阅读该包中的代码以获得更好的理解。我不得不说,设置一个通用(同构)webpack配置比它应该更难。还有一些其他的文章和软件包,你可能会觉得有用。

根据经验,这些都是你需要的服务器代码设置的WebPack时要考虑的主要位:

集“目标”到“节点”

巴贝尔:结帐https://github.com/babel/babel/tree/master/experimental/babel-preset-env

使用webpack-node-internals

集 “节点” 这些选项:

{ 
    console: true, 
    global: true, 
    process: true, 
    Buffer: true, 
    __filename: true, 
    __dirname: true, 
    setImmediate: true 
} 
  • 请勿为您的服务器代码使用webpack dev服务器。输出到文件,然后在该文件上使用nodemon。

还有其他几点需要考虑,但这些是主要关注点。

相关问题