当前位置: 首页 > 面试题库 >

ReactJS:webpack:无法使用扩展语法进行编译

东深
2023-03-14
问题内容

我想告诉你我的问题。

我的环境:

Node: 8.9.1
npm: 5.6.0
yarn: 1.3.2

package.json

  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1",
    "copy-webpack-plugin": "^4.1.1",
...
    "webpack": "^3.7.1",
    "webpack-dev-server": "^2.9.2"
  },

webpack.config.js

...
    module: {
      rules: [
        {
          test: /\.(js|jsx)$/,
          exclude: /node_modules/,
          use: {
            loader: 'babel-loader',
            options: {
              cacheDirectory: true,
              presets: ['react', 'env']
            }
          }
        },
...

总是像这样在{…}

./src/flux/components/BaseComponent.js中的错误模块构建失败:语法错误:D:/APPs/src/flux/components/BaseComponent.js:意外令牌(36:29)

 34 |     let {search} = this.state;
  35 |     search.includeActive = !search.includeActive;
> 36 |     this.setState({category : {...this.state.category, name :

name}});

     |

但是,如果没有webpack,它会很好地工作。请帮我解决这个问题!非常感谢大家!:)


问题答案:

为了使用扩展语法,您需要配置babel loader,您有几个选择

第一: 使用插件"transform-object-rest-spread"

使用安装

npm install --save-dev babel-plugin-transform-object-rest-spread

并使用它

   options: {
       cacheDirectory: true,
       presets: ['react', 'env']
       plugins: ['transform-object-rest-spread']
   }

第二: 使用stage-0预设,使用

npm install --save-dev babel-preset-stage-0

并像这样使用

options: {
   cacheDirectory: true,
   presets: ['react', 'env', 'stage-0']
}

检查 此babel文档



 类似资料:
  • Markdown 标准 本身所包含的功能有限,所以产生了许多第三方的扩展语法,如 GitHub Flavored Markdown。 这里只介绍众多扩展语法中的一部分内容,它们在不同平台或工具的支持程度不同,请参考具体平台或工具的文档和说明来使用。 删除线 代码块和语法高亮 表格 Task List CommonMark CommonMark 试图将碎片化的 Markdown 实现和扩展进行标准化

  • Markdown 的目标是实现「易读易写」。 可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大灵感来源其

  • 在扩展查询模式中可以使用如下特殊操作符:  或(OR)操作符: hello | world  非(NOT)操作符: hello -world hello !world  字段(field)搜索符: @title hello @body world  字段限位修饰符(版本Coreseek 3/Sphinx 0.9.9-rc1中引入): @body[50] hello  多字段搜索符: @(

  • 问题内容: 我有一个Java FX项目,正在使用maven 3.0.5进行构建。当我运行mvn package / install时,项目失败,并抱怨该包javafx。 * 不存在。据我了解,Javafx是用Java 1.7打包的,因此该构建没有接受它是没有意义的。当我在IDE(intellij)中编译它时,它可以正常工作,并且之后我的maven构建也成功安装,但是我不希望每次执行全新安装时都必须

  • 这里有一个总节点noob。我一直在尝试设置示例节点应用程序,但每次尝试运行时都会出现以下错误: 节点应用程序

  • 我试图使用graal nashorn interop来编写与Java交互的NodeJ。我从。但我不能延长课程。javascript代码是 我的错误是这似乎指向了我所引用的java代码以及javascript运行位置的类加载器问题(即两个不同的类加载器)。在使用graal/nodejs时,有没有办法做到这一点?