javascript - Gulp CJSX 渲染编译错误

标签 javascript coffeescript reactjs gulp preprocessor

我正在使用 gulp 编译 cjsx 文件(用于 Reacjs),但编译完成后遇到一些问题。

gulpfile.js

gulp.task('scripts', function ()   {
return gulp.src('dev/scripts/**/*.cjsx')
    .pipe($.cjsx({bare: true}))
    .pipe(gulp.dest('.tmp/scripts/'))
    .pipe($.size()); 
});

组件.cjsx

@Login = React.createClass
getInitialState: ->
    error: null

handleSubmit: (e) ->
    #do some thing

render: ->
    if @state.error
        error = <div>{this.state.error}</div>

    `<form className=loginForm onSubmit={this.handleSubmit}>
        {error}
        <input type="text" placeholder="emdsmmail" ref="email" />
        <input type="text" placeholder="password" ref="password" />
        <input type="submit" value="Post" />
    </form>`
@Dashboard = React.createClass
render: ->
    <div>SomeText</div>

然后渲染后就像这样(我只放了代码的末尾): 组件.js

  render: function() {
var error;
if (this.state.error) {
  error = React.createElement("div", null, this.state.error);
}
    return <form className=loginForm onSubmit={this.handleSubmit}>
        {error}
        <input type="text" placeholder="emdsmmail" ref="email" />
        <input type="text" placeholder="password" ref="password" />
        <input type="submit" value="Post" />
    </form>;
}
});

this.Dashboard = React.createClass({
render: function() {
    return React.createElement("div", null, "SomeText");
}
});

如果我将直接命令与 npm cjsx -c my-component.cjsx 一起使用,则它可以使用引号( ` )正常工作。

所以首先我尝试保存我的报价(`),但它给了我一个糟糕的结果,就像你在“表单”中看到的那样。

所以我删除了引号(`),就像仪表板组件一样,以显示发生了什么,并且它有效;但前提是我不使用像 : ( ") 或 ( ' ) 这样的引号来表示像 'form' 上的输入这样的属性。

如果有人可以帮助我, 你给了我很好的帮助:)

感谢您的阅读。

最佳答案

我很好的解决方案,执行 1 个任务,例如: .coffee(真正的.cjsx)-> .js(真正的.jsx)-> .js(真正的.js)

所以我的 gulp 文件是这样的:

gulpfile.js

gulp.task('scripts', function ()   {
return gulp.src('dev/scripts/**/*.coffee')
    .pipe($.plumber())
    .pipe($.coffee())
    .pipe($.react())
    .pipe(gulp.dest('.tmp/scripts'))
    .pipe($.size());
});

(ps : $ = gulp-load-plugin//咖啡 = gulp-coffee// react = gulp-react)

关于javascript - Gulp CJSX 渲染编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875085/

相关文章:

javascript - 在 chrome 检查器中快速导入库

javascript - 渲染方法中独特的 "key"prop 警告 - ReactJS

javascript - 通过 redux store enhancer 添加额外中间件的正确方法是什么?

reactjs - 如何在饼图中添加工具提示?

javascript - 供离线使用的 MDN javascript 文档

javascript - 如何使用javascript调用按钮onclick并停止回发

javascript - 创建关闭事件以从自定义叠加层发出

unit-testing - 如何制作 mocha watch,编译和测试依赖于保存的 coffeescript

javascript - jquery 删除所有 div,即使它们位于另一个菜单中

javascript - 切换 Google map 标记