Ecmascript 6 同构应用程序和浏览器特定代码
我正在构建一个具有webpack、React、ES6和fluxible的同构应用程序,并且遇到了以下关于浏览器特定模块导入的问题 例如,我想使用React组件中的imagesloaded。此操作的代码如下所示:Ecmascript 6 同构应用程序和浏览器特定代码,ecmascript-6,webpack,isomorphic-javascript,Ecmascript 6,Webpack,Isomorphic Javascript,我正在构建一个具有webpack、React、ES6和fluxible的同构应用程序,并且遇到了以下关于浏览器特定模块导入的问题 例如,我想使用React组件中的imagesloaded。此操作的代码如下所示: import React, { PropTypes, Component, findDOMNode } from "react"; import imagesLoaded from "imagesloaded"; 但是,很明显,它首先尝试在服务器端进行导入,代码失败得很惨,出现了一个错
import React, { PropTypes, Component, findDOMNode } from "react";
import imagesLoaded from "imagesloaded";
但是,很明显,它首先尝试在服务器端进行导入,代码失败得很惨,出现了一个错误:
ReferenceError: window is not defined
问题是-我应该采取什么方法使代码只包含在浏览器端版本中?我想我正在寻找类似的东西:
if (process.env.BROWSER) {
require("../style/components/Shop.scss");
}
谢谢 您可以使用与您提到的完全相同的方法,使用
require
if (process.env.BROWSER) {
require("imagesloaded");
}
那就行了。
此外,还有更多选项可供选择:
global.window = global
我已经完成了,现在我面临一个不同的错误:找不到模块:错误:无法在/Users/opportunato/projects/grabr web client/node_modules/imagesloaded中解析模块'eventEmitter/eventEmitter',我必须创建一个不同的错误,因为它更多地与作为模块的图像相关,而不是与它在同构中的使用相关。看起来这个库依赖于另一个库。尝试导入
imagesloaded/imagesloaded.pkgd.js
。这个文件已经绑定了dependencies我在这里打开了一个问题,看起来AMD的定义有一些错误,或者我做错了什么。谢谢