我一直在创建一些 React.js 组件并将它们作为模块发布到 npm。
我正在使用以下 gulp 任务,使用 gulp-react 将所有 jsx 组件转换为 js:
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,那么我会将其添加到peerDependency 中吗?
最佳答案
好问题,经典问题“我是否在我的存储库中包含构建工件?”的一个特例。我倾向于指向 JS 文件,因为包/依赖关系管理器的要点是,当你发布东西时,其他人应该能够立即安装并开始使用,而不必自己考虑依赖关系。例如:
我在命令行上安装我的包:
$ npm install something
打开 Node repl
并且:
> var something = require('something');
undefined
> something.functionallity(1, 2, 3);
...whatever, but you wouldn't like an error now...
关于javascript - 将reactjs组件作为 Node 模块导出到npm时,我是否包含jsx或js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28356623/