ReactJS - 从主文件导出模块
ReactJS - Export modules from main file
我有一些像这样的 React 类,我想导出:
import React, { PropTypes } from 'react';
var Foo = React.createClass({
propTypes: {
foo1: PropTypes.string,
foo2: PropTypes.number
},
getDefaultProps() {
return {
foo1: 'foo1',
foo2: 2
};
},
render: function() {
return (
<div>Foo</div>
);
},
});
export default Foo;
但是我想从一个文件调用它们,所以我在同一目录中创建了一个main.js
文件:
var Foo = require('./Foo');
var Foo2 = require('./Foo2');
export default { Foo, Foo2 };
在gulpfile.js
:
var gulp = require('gulp');
var browserify = require('browserify');
var babelify = require('babelify');
var source = require('vinyl-source-stream');
gulp.task('build-js', function() {
return browserify('./src/main.js')
.transform(babelify)
.bundle()
.pipe(source('bundle.js'))
.pipe(gulp.dest('./dist'));
});
gulp.task('build', ['build-js']);
package.json
指定主文件:
"main": "dist/bundle.js"
然后,在测试应用程序中,我想使用这些组件,因此在package.json
中添加了main
作为依赖项:
"main": "file:../../main"
我尝试从页面调用它们:
import { Foo } from 'main';
但是我收到此错误:
错误:无法从"/testing-react/node_modules/main/dist"中找到模块"./emptyFunction"
我可以看到bundle.js
有var emptyFunction = require('./emptyFunction');
和更多实际上不存在的文件require
。我对此有点困惑。我尝试了其他组合但没有成功。可能我在从main.js
导出时做错了什么,也许是因为我导出了两次。知道吗?
编辑:
这似乎与gulpfile.js
有关,因为我尝试使用browserify('./src/Foo.js')
browserify('./src/main.js')
的 insead 以获得相同的结果。
更改
var Foo = require('./Foo');
var Foo2 = require('./Foo2');
export default { Foo, Foo2 };
自
export const Foo = require('./Foo');
export const Foo2 = require('./Foo2');
更新
将export /import
语法与同一文件中的require
相结合可能会变得混乱。考虑不使用require
而是使用import
。
相关文章:
- 全局安装的NodeJS npm模块不执行节点的主/bin JavaScript文件
- 查找已安装的NodeJS模块的文件系统位置
- 从 Drupal 7 中的模块.js文件调用全局 JS 函数
- JavaScript 模块模式文件在一个文件中连接并使用它们的函数
- 扩展 JavaScript 通用模块(UMD 文件)中定义的类的正确方法是什么?
- 如何引用属于某个模块的文件
- 模块作为文件夹,但文件夹下的index.js只包含一些require语句
- 如何使用这些Node模块通过文件或URL接受HTML,然后输出JSON作为现有HTML元素的验证
- 避免重复“;路径”;RequireJS主文件和r.js构建文件中的配置
- 为什么是全球性的.模块在文件中未定义,但在Node REPL中它是全局对象
- 使用ajax发送一个JS变量,但我怎么能使用PHP变量之后到我的主文件
- 在使用主文件的aspx页面中放置外部.js文件的位置
- Visual studio Asp.net mvc,智能感知javascript包含在主文件中
- 如何从外部文件调用函数链接到主文件
- 我如何加载外包文本到HTML或PHP使用JSON主文件
- jQuery代码在使用主文件从aspx文件调用时不工作
- 您可以在没有回调的情况下从模块文件中调用主node.js服务器文件中的函数吗
- 将UrlArgs添加到reuirejs主文件中
- 使用内置模块压缩文件夹
- 无法使用——out将typescript模块(.ts)文件连接到单个输出(.js)中