簡體   English   中英

ReactJS Unexpected Token)僅限Safari

[英]ReactJS Unexpected Token ) on Safari only

我在Safari上只得到一個SyntaxError: Unexpected token ")" - 這段代碼適用於所有其他瀏覽器。

我正在使用gulp來編譯我的文件,如下所示:

browserify(componentPath + "app.jsx")
    .transform(reactify)
    .transform(babelify)
    .bundle()
    .pipe(source('app.js'))
    .pipe(gulp.dest(buildPath));

語法錯誤突出顯示以下內容:

return React.createElement(If, {
     condition: !_.isEmpty(title)
 }, React.createElement("div", {
     className: "row wrapper border-bottom white-bg page-heading"
 }, React.createElement("div", {
     className: "col-lg-9"
 }, React.createElement("h2", null, title || 'Untitled'), React.createElement("ol", {
     className: "breadcrumb"
 }, React.createElement("li", null, React.createElement("a", {
     onClick: () => self.history.pushState(null, home)
 }, "Home")), links.map(function(link, index) {
     var url = link.url;

     return React.createElement("li", {
         onClick: () => self.history.pushState(null, url),
         key: url,
         className: "ptr-click"
     }, index == links.length - 1 ? React.createElement("strong", null, link.title || 'Untitled') : link.title);
 })))));

我對整個部分進行了評論,只是為了查看它是否是這個特定的代碼塊,然后錯誤引用了另一個完全相同的React.createElement塊。

考慮到mattclemens評論,Safari目前不執行箭頭功能。 所以我將我的gulp腳本更新為:

browserify(componentPath + "app.jsx")
    .transform(reactify)
    .transform(babelify, {presets: ["es2015", "react"]})
    .bundle()
    .pipe(source('app.js'))
    .pipe(gulp.dest(buildPath));

當然,不要忘記安裝預設:

npm install babel-preset-es2015 babel-preset-react

這工作得很好,現在我的代碼也在Safari上運行:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM