我正在React.js项目中工作,我需要在其他项目中导入一些JavaScript,还有一些我必须导出它。
例如我有A.js
需要一些库:
var EventEmitter = require('EventEmitter');
var React = require('react');
//some code here
//some function definition
var fun = function(){...}
module.exports = fun;
然后我有另一个B.js
,它不仅需要库,还需要我自己的JavaScript。例如B.js
(我想两者都在同一个文件夹中):
var fun = require('./B.js');
var React = require('react');
//some other code here
我尝试使用库requirejs并尝试使用npm和nodejs,但我不确定它是如何工作的。 我正在使用flux-chat example
答案 0 :(得分:0)
RequireJS和npm是解决模块的两种不同方法。人们经常使用bower
下载支持AMD / UMD的库,并添加RequireJS配置文件的路径。 RequireJS为您解析依赖项。
我建议你使用npm和webpack来管理你的模块。那里还有很多文件。
假设您要创建单页应用程序。当您使用npm安装lib时,它会从npm注册表下载到本地磁盘的node_modules中。你如何在你的HTML中指出node_modules/
文件夹的路径?答案是你不能。 Webpack为您完成任务。
Webpack将所有javascript文件和必要的依赖项(本地node_modules中的文件)捆绑到一个大文件中。然后,您可以在html中设置<script src="...">
的路径。
答案 1 :(得分:0)
首先,如果您为A.js
和B.js
指定的代码不适合您,那将是因为您正在尝试在{x 1}}内部使用B.js
本身......我认为你要做的就是A.js
需要B.js
,如下所示:
B.js
修正:
var fun = require('./A.js');
var React = require('react');
//some other code here
注意fun
现在需要A.js
如果我上面注意到的拼写错误并不能解决您的问题,请继续阅读......
当您A.js
B.js
需要A.js
时,您到底想要做什么?
如果我不了解您正在尝试完成的内容(或者直到我看到B.js
和A.js
文件中的实际代码),我的最佳答案就是:< / p>
module.exports = function(){
fun: function(param){...logic here...}
}
看起来像是:
B.js
var React = require('react');
var A = require('./B.js');
var Whatever = React.createClass({
render: function() {
return (
<div>
{A.fun('param value')}
</div>
);
}
});
看起来像这样:
A.js
如果另一方面,您尝试将B.js
导出为可以要求的React组件,并添加到另一个(SELECT t2.site, t2.statusname AS statusname, COALESCE(t1.total,0) AS total
FROM
(
SELECT site, status, COUNT(*) AS total
FROM participant
GROUP BY site, status
) AS t1
RIGHT JOIN
(
SELECT DISTINCT participant_status.id AS status, participant_status.name AS statusname, participant.site FROM participant
CROSS JOIN
participant_status
ORDER BY status, site
) AS t2
ON t1.site = t2.site AND t1.status = t2.status
)React组件......我的回答是与众不同。