当将reactjs组件作为节点模块导出到npm时,我包括jsx还是js

When exporting reactjs components as node modules to npm, do I include jsx or js

本文关键字:npm 包括 js 还是 jsx 组件 reactjs 节点 模块 当将      更新时间:2023-09-26

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

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

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-rect,那么我会把它添加到peerDependencies中吗?

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

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

$ npm install something

打开节点repl并:

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

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