2017-04-13 33 views
0

其中一个组件是有这个进口:角服务器端渲染:如何消除进口时“isBrowser =假”

import * as mapBoxGlClient from 'mapbox-gl/dist/mapbox-gl.js'; 

所有作品的作品。 但是当我运行节点:

node main.server.bundle.js 

我得到这个错误:

Cannot read property 'hardwareConcurrency' of undefined 

调查后,我意识到,mapbox需要window.navigator,浏览等所有的事情,可以” t用于服务器

所以我的问题是有什么办法来跳过导入,或任何其他想法将不胜感激。

谢谢。

回答

0

问题不在于导入(在代码运行之前导入被解析并解析),而是使用了其中的东西的代码。据我所知,没有办法有条件地导入东西,但是无论您是否在浏览器环境中,都可以有条件地执行代码。

+0

如果'isBrowser = false',我不会显示这个组件。我认为问题出现在mapbox中,我认为这个代码在创建mapBoxGlClient实例时运行。 – DanDuh