【问题标题】:"Unexpected token" will trying react-datepicker“意外令牌”将尝试 react-datepicker
【发布时间】:2019-01-06 18:58:54
【问题描述】:

我正在尝试设置提供的代码on the page of the react-datepicker

我的构建工具链由 npm 和 browserify 组成。

我有以下 package.json

{
  "name": "datepicker",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "browserify -o public/bundle.js -v -d main.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babelify": "^7.0.0",
    "browserify": "^12.0.1",
    "browserify-css": "^0.14.0",
    "react": "16.5",
    "react-datepicker": "^2.0.0",
    "react-dom": "^16.5",
    "reactify": "^1.1.1"
  },
  "browserify-css": {
    "autoInject": true,
    "minify": true,
    "rootDir": ".",
    "output": "backend/public/bundle.css"
  },
  "browserify": {
    "transform": [
      "babelify",
      "browserify-css"
    ]
  },
  "devDependencies": {
    "@babel/cli": "^7.2.3",
    "@babel/core": "^7.2.2"
  }
}

我的 main.js 的组成如下:

  import React from "react";
  import ReactDOM from "react-dom"
  import DatePicker from "react-datepicker";


// CSS Modules, react-datepicker-cssmodules.css
 import 'react-datepicker/dist/react-datepicker-cssmodules.css';

class Example extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      startDate: new Date()
    };
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(date) {
    this.setState({
      startDate: date
    });
  }

  render() {
    return (
      <DatePicker
        selected={this.state.startDate}
        onChange={this.handleChange}
      />
    );
  }
}

ReactDOM.render(<Example />, document.getElementById('app'))

然后我运行

npm run start

我收到了这条消息

语法错误:/home/mylogin/test_react_go/datepicker/main.js: 意外令牌 (26:6)

我花了一些时间来了解这个问题,但没有找到任何解决方案。如果有人更习惯于现代 js 工具可以帮助我,我会很高兴。

【问题讨论】:

    标签: reactjs npm browserify react-datepicker babelify


    【解决方案1】:

    您将 reactify 添加为依赖项,但未将其放在 browserify 转换列表中。

    查看this setup,以便您进行比较并做出更好的。

    【讨论】:

    • 抱歉,Reactify 依赖项不应该在这里,我改变主意使用 Babelify,这似乎更好。因此,即使我删除了依赖项,它也不会改变任何内容。
    • 您的链接帮助了我,但它并没有解决我 100% 的问题。
    【解决方案2】:

    这是我的解决方案(可行),如果开发人员来自后端语言,请浏览到这个 StackOverflow 问题 :) 您可以在下面找到一个 package.json,它能够在两个文件包中生成 react 项目来自 ES6 代码源的 .js 和 bundle.css。

    {
      "name": "datepicker",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "start": "browserify -o 'public/bundle.js' -v -d main.js -p [ parcelify -o public/bundle.css ] "
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "react": "16.5",
        "react-datepicker": "^2.0.0",
        "react-dom": "^16.5"
      },
      "browserify": {
        "transform": [
          [
            "babelify",
            {
              "presets": [
                "@babel/preset-env",
                "@babel/preset-react"
              ]
            }
          ]
        ]
      },
      "style": [
        "./node_modules/react-datepicker/dist/react-datepicker-cssmodules.css"
      ],
      "devDependencies": {
        "parcelify": "^2.2.0",
        "@babel/cli": "^7.2.3",
        "@babel/core": "^7.2.2",
        "@babel/preset-env": "^7.2.3",
        "@babel/preset-react": "^7.0.0",
        "babel-core": "^7.0.0-bridge.0",
        "babelify": "^10.0.0",
        "babel-plugin-react-css-modules": "^5.0.0",
        "browserify": "^12.0.1"
      }
    }
    

    我愿意发表评论或改进。

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 2016-09-13
      • 2017-04-19
      • 2016-07-23
      • 2017-07-22
      • 1970-01-01
      • 2020-01-29
      • 2016-07-10
      • 2017-11-05
      相关资源
      最近更新 更多