Webpack和Javascript变量作用域,在所有模块中使用var=可以吗?

Webpack和Javascript变量作用域,在所有模块中使用var=可以吗?,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,我正在为我的应用构建ReactJS前端。我使用webpack将所有javascript打包到一个文件中。以下是我编写模块的方式 var _ = require("underscore"); var React = require("react"); var SomeComponent = React.createClass({ render() { return "Some Html Here"; } }; module.exports = SomeComp

我正在为我的应用构建ReactJS前端。我使用webpack将所有javascript打包到一个文件中。以下是我编写模块的方式

var _ = require("underscore");
var React = require("react");

var SomeComponent = React.createClass({

    render() {
      return "Some Html Here";

    }

};

module.exports = SomeComponent;
我在它们中都使用var React=require('React')。据我所知,在模块内使用var将变量的作用域限定到该模块。因为我几乎每个模块都需要react和其他一些库,有没有一种全局定义的方法?或者我甚至应该担心这一点,WebPack是否足够聪明,可以知道一个模块中的react-var与另一个模块中的react-var相同


我的解决方案似乎很好,但我很好奇这是否是对内存的不良使用。

您的解决方案很好。Webpack将您的js文件捆绑起来,并在生产构建中对其进行丑化。这个过程只需要根据需要加载所需的库—大多数情况下只加载一次(如果您没有做任何疯狂的分块工作的话)

除此之外,在模块中需要所有依赖项也是一个很好的实践。这使得它更加可重用,因为您不必担心首先在全局名称空间中放置一些lib


为生产构建时,请确保执行
webpack-p
。否则你的包裹会很大;-)

每个模块中的
var React
都是对单例的引用,单例是React库,与下划线或您自己编写的模块相同。唯一的额外内存是每个文件一个指针引用,在遇到内存问题之前,您可以再添加数万个指针引用。最重要的是,Webpack确实很聪明,尽可能地共享变量。