由于ES2015模板文字导致的Webpack错误-“;未终止的字符串常量“;

Webpack error due to ES2015 template literal - "Unterminated string constant"

本文关键字:常量 字符串 终止 错误 Webpack ES2015 文字 由于      更新时间:2023-09-26

我正试图根据文档使用ES2015模板文字进行Relay.QL调用,但Webpack对此不满意。

这是包含Relay.QL调用的文件:

import React from "react";
import ReactDOM from "react-dom";
import Relay from "react-relay";
import Main from "./components/Main";
ReactDOM.render(<Main />, document.getElementById('react'));
console.log(
    Relay.QL'
        {
            links {
                title
            }
        }
        '
);

这是Webpack错误:

ERROR in ./js/app.js
Module build failed: SyntaxError: C:/websites/rgrjs/js/app.js: Unterminated string constant (11:12)
   9 |
  10 | console.log(
> 11 |     Relay.QL'
     |             ^
  12 |         {
  13 |             links {
  14 |                 title
    at Parser.pp.raise (C:'websites'rgrjs'node_modules'babylon'index.js:1413:13)

看起来Webpack不喜欢Relay.QL使用的ES2015模板文字?

我在webpack.config.js文件中包含了ES2015选项,如下所示:

       query: {
            presets: ['react', 'es2015', 'stage-0'],
            plugins: ['./babelRelayPlugin']
        }

最后,.babelRelayPlugin文件看起来是这样的:

// `babel-relay-plugin` returns a function for creating plugin instances
var getBabelRelayPlugin = require('babel-relay-plugin');
// load previously saved schema data (see "Schema JSON" below)
var schemaData = require('./data/schema.json').data;

module.exports = getBabelRelayPlugin(schemaData);

我还有什么需要做的吗?我是Relay和ES2015的新手,所以我可能错过了一些显而易见的东西。

模板文字用回溯标记表示,而不是用引号表示。

Relay.QL`...`

如果你仔细观察这个例子,你会注意到他们也在使用反勾号:

var fragment = Relay.QL`
  fragment on User {
    name
  }
`;