首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js和前端共享模块中的模块语法和依赖关系

Node.js和前端共享模块中的模块语法和依赖关系
EN

Stack Overflow用户
提问于 2014-09-12 09:22:51
回答 1查看 504关注 0票数 0

我正在了解node.js和javascript前端,并且前端和后端之间共享模块/组件(在本例中为Node.js)已经成为互操作(特别是在使用React.js时)。这不是一个新的问题,但我一直未能找到一个很好的方法,以满足我目前的需要。

我想要的:

使用前端和节点后端的项目模块和子模块,在require语句中使用工作路径,并为文件/模块加载使用最少可能的bolierplate代码。希望不需要构建步骤.

例如,我有一个用于呈现HTML的react组件。当webapp处于活动状态时,在前端使用此组件,在生成html之前在后端使用该组件。这只是一个例子,主要要求如上文所述。

最好的例子是项目模块文件(不是实际测试代码):

代码语言:javascript
复制
var React = require('react'),
    MyLocalSubmodule = require('path/modulename');

var ThisComponent = React.createClass({
    /* ...something.... */
});

module.exports = ThisComponent;

问题:

  1. 如果我使用纯粹的CommonJS语法,比如标准节点模块( node和module.export),那么使用这个语法是非常好的,但是除非我使用了browserify、webpack等来构建前端代码,否则模块在前端无法发挥作用。这并不是什么大问题,但我希望减少所需构建步骤的数量,以便尽可能多地直接使用代码。

问题:是否有任何前端加载程序可以运行未包装的CommonJS模块,而无需预构建它们,并且在模块文件中没有任何样板或类似的黑客?

  1. 如果我使用一些AMD语法来定义和返回,那么很容易让它们在节点上工作(使用需求模块、amdefine或somilar模块),但是我在模块路径上遇到了问题。如果我在前端用一个require.js配置baseUrl,我可以在require中通过路径包含一个项目模块文件。然后,当我需要包含另一个模块(比如子响应组件)时,我也需要在require中定义这个模块的路径。到目前一切尚好。然后,如果我试图在节点/表达式上运行这个模块,那么第一个模块可以工作(基于快速视图路径),但是要求子模块从第一个模块中运行不起作用,因为require然后在当前模块目录的相对路径中查找本地模块,而不是基于表达式视图路径查找路径。如果我将相对路径放置到子组件(比如require('./subdir/mySubmodule')或require(‘./otherdir/mySubmodule)),那么它在前端的Require.js中就不起作用了。如果我没有在需求名称中包含任何目录指示,我就没有找到任何方法告诉节点查看给定的路径(比如请求(‘path / to /component’)),所以我可以使用与require.js前端相同的固定基dir。(注意:我想避免设置像NODE_PATH这样的环境变量来解决节点路径问题)。而且,我还没有找到在浏览器中的require.js上使用相对于当前模块文件的路径( Node这样做)的方法。

问:是否有一种非恶意的好方法,可以在前端和节点后端都要求具有相同名称语法的模块(var myModule =myModule(前端-后端-共享-语法))中的本地(项目)模块和子模块。

最后一个问题:,您建议的使节点/前端共享项目模块(包括子模块的使用)的最佳方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2014-09-12 16:22:03

您可以使用Browserify按需绑定JavaScript。

有几个开放源码项目允许您这样做(例如,https://www.npmjs.org/package/browserify-middleware)。

若要在一个模块中创建具有浏览器和节点代码的模块,可以在package.json文件中指定“浏览器”属性。Browserify将使用指定的文件作为浏览器代码中的入口点,而节点将加载"main“中指定的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25804924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档