我开始了解node.js和javascript前端,并且在前端和后端之间共享模块/组件(在这种情况下,带有express的Node.js)已成为有趣的(特别是在使用React.js时)。这不是一个新问题,但我找不到适合我当前需求的好方法。
我想要的是什么:
在前端和Node后端使用项目模块和子模块以及require语句中的工作路径,以及用于文件/模块加载的最小可能的bolierplate代码。希望无需构建步骤。
例如,我有一个用于呈现HTML的react组件。当webapp处于活动状态时,此组件用于前端,而在预生成html时用于后端。这只是一个示例,主要要求如上所述。
最佳案例,项目模块文件(不是实际测试的代码):
var React = require('react'),
MyLocalSubmodule = require('path/modulename');
var ThisComponent = React.createClass({
/* ...something.... */
});
module.exports = ThisComponent;
问题:
问题:是否有任何前端加载程序可以运行未打包的CommonJS模块而无需预先构建它们,模块文件中没有任何样板或类似的黑客攻击?
问题:是否有一种非hackish好方法要求在require语句中具有相同名称语法的模块内的本地(项目)模块和子模块(var myModule = require('frontend-backend-shared-syntax) ');)在前端和Node后端?
上一个问题:制作节点/前端可共享项目模块(包括使用子模块)的最佳建议方法是什么?
答案 0 :(得分:0)
您可以使用Browserify API按需捆绑JavaScript。
有几个开源项目允许您这样做(例如https://www.npmjs.org/package/browserify-middleware)。
要在一个模块中创建包含浏览器和节点代码的模块,您可以指定一个"浏览器" package.json文件中的属性。然后,Browserify将使用指定的文件作为浏览器代码中的入口点,而节点将加载" main"中指定的文件。