当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 如何在节点之间共享代码并做出反应?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我在服务器渲染上使用React,因此需要在节点和客户端使用反应代码,在客户端我使用browserify. 现在假设我有一个组件: var item = React.createClass({ //code here}) 为了在节点中使用这个组件,我必
我在服务器渲染上使用React,因此需要在节点和客户端使用反应代码,在客户端我使用browserify.

现在假设我有一个组件:

var item = React.createClass({
    //code here
})

为了在节点中使用这个组件,我必须首先要求React,所以组件将是

var React = require('React');
var item = React.createClass({
    //code here
})

但如果我通过browserify在客户端中使用此组件,则需要React librray,在这种情况下,我的构建js文件将太大.我知道我可以在browserify中忽略React

browserify -i React

但如果我忽略了React那么代码:

var React = require('React');

会导致错误“undefined is not a function”

任何想法如何避免这种情况?

您可以将供应商包放在单独的包中:

browserify -r react -r underscore > vendor.js

然后声明这些依赖项将由外部包(或多个)提供:

browserify -x react -x underscore main.js > bundle.js

并在您的页面中包含:

<script src="vendor.js"></script>
<script src="bundle.js"></script>

在构建主捆绑包时,您不需要重建供应商捆绑包(除非您已升级依赖项).通常你实际上并不需要这样做,如果你担心开发中的构建时间:watchify是一个很好的替代/补充.

什么东西是-r’d你也可以在普通的脚本标签中要求它.这意味着现在有一个require全局,它可能与页面上的其他脚本冲突.

<script>
    var React = require('react');
</script>
网友评论