将reactjs组件作为节点模块导出到npm时,是否包含jsx或js

时间:2015-02-06 00:30:18

标签: javascript node.js npm gulp reactjs

我一直在创建一些React.js组件并将它们作为模块发布到npm。

我正在使用以下gulp任务将所有jsx组件转换为js,使用gulp-react:

var react = require('gulp-react');

gulp.task('react', function () {    
  return gulp.src('./jsx/*.jsx')
    .pipe(react({
      harmony: true
    }))
    .pipe(gulp.dest('./js/'));
});

所以在我发布的模块中,我有js和jsx文件夹中的组件。

我的问题是哪个将主文件指向我的package.json更好?

JS

"main": "js/todo.js",

jsx

"main": "jsx/todo.jsx",

我会假设如果我将它们指向jsx然后它们需要安装gulp-react,那么我会将它添加到peerDependencies中吗?

2 个答案:

答案 0 :(得分:2)

好问题,经典的特例"我在我的仓库中包含构建工件吗?"。我倾向于指向JS文件,因为包/依赖关系管理器的意思是当你发布其他东西应该能够安装并立即开始使用时,而不必自己考虑依赖关系。 E.g:

我在命令行上安装我的软件包:

$ npm install something

打开节点repl并:

> var something = require('something');
undefined
> something.functionallity(1, 2, 3);
...whatever, but you wouldn't like an error now...

答案 1 :(得分:0)

您的.js,因为这样您就可以在管道中添加更多内容并将其覆盖