Javascript “npm运行生成”失败,语法错误:意外标记

Javascript “npm运行生成”失败,语法错误:意外标记,javascript,node.js,reactjs,npm,webpack,Javascript,Node.js,Reactjs,Npm,Webpack,我试图将我的应用程序部署到AWS,但在执行npm运行构建时遇到错误。 此错误似乎与webpack.config.js有关,但我不知道,因为我没有对该文件进行任何修改 我在这里发现了一个类似的问题,但没有多大帮助。 下面是错误日志中提到的webpack.config.js部分。 或者可能在vm.js文件中 <webpack.config.js> . . . alias: { // Support React Native Web // ht

我试图将我的应用程序部署到AWS,但在执行npm运行构建时遇到错误。 此错误似乎与webpack.config.js有关,但我不知道,因为我没有对该文件进行任何修改

我在这里发现了一个类似的问题,但没有多大帮助。

下面是错误日志中提到的webpack.config.js部分。 或者可能在vm.js文件中

<webpack.config.js>
.
.
.
      alias: {
        // Support React Native Web
        // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
        'react-native': 'react-native-web',
        // Allows for better profiling with ReactDevTools
        ...(isEnvProductionProfile && {
          'react-dom$': 'react-dom/profiling',
          'scheduler/tracing': 'scheduler/tracing-profiling',
        }),
        ...(modules.webpackAliases || {}),
      },
.
.
.
如果您能提供任何建议或可能的理由,我将不胜感激。 谢谢:

[编辑]

<vm.js>
var test = require('tape');
var vm = require('../');

test('vmRunInNewContext', function (t) {
    t.plan(6);

    t.equal(vm.runInNewContext('a + 5', { a : 100 }), 105);

    (function () {
        var vars = { x : 10 };
        t.equal(vm.runInNewContext('x++', vars), 10);
        t.equal(vars.x, 11);
    })();

    (function () {
        var vars = { x : 10 };
        t.equal(vm.runInNewContext('var y = 3; y + x++', vars), 13);
        t.equal(vars.x, 11);
        t.equal(vars.y, 3);
    })();

    t.end();
});

test('vmRunInContext', function (t) {
    t.plan(2);

    var context = vm.createContext({ foo: 1 });

    vm.runInContext('var x = 1', context);
    t.deepEqual(context, { foo: 1, x: 1 });

    vm.runInContext('var y = 1', context);
    t.deepEqual(context, { foo: 1, x: 1, y: 1 });
});


这段代码似乎是在ES2018中添加了spread properties之前使用稍旧的JavaScript引擎运行的。ES2015中添加了iterables的spread,但仅在ES2018中添加了property spread

如果无法将环境升级到较新的环境,则可以切换到Object.assign:

已在ES2015中添加Object.assign

旁注:您可以更换

    modules.webpackAliases || {}
仅仅

    modules.webpackAliases || {}

如果您向它们传递的是falsy值而不是对象,则上面的.Object.assign和property spread实际上会忽略它。这不是字面意义上的true,它们只显式忽略null和undefined;所有其他对象都转换为等效对象,然后使用它们的可枚举自身属性-但是那些false、0、NaN和没有任何可枚举的自有属性。只是不将document.all传递给它,这是错误的,但确实有可枚举的自有属性…[是的,document.all确实是错误的。我在我的书JavaScript:新玩具第17章中介绍了这一奇怪的历史文物。]

这段代码似乎是在ES2018中添加spread properties之前使用稍旧的JavaScript引擎运行的。ES2015中添加了iterables的spread,但仅在ES2018中添加了property spread

如果无法将环境升级到较新的环境,则可以切换到Object.assign:

已在ES2015中添加Object.assign

旁注:您可以更换

    modules.webpackAliases || {}
仅仅

    modules.webpackAliases || {}

如果您向它们传递的是falsy值而不是对象,则上面的.Object.assign和property spread实际上会忽略它。这不是字面意义上的true,它们只显式忽略null和undefined;所有其他对象都转换为等效对象,然后使用它们的可枚举自身属性-但是那些false、0、NaN和没有任何可枚举的自有属性。只是不将document.all传递给它,这是错误的,但确实有可枚举的自有属性…[是的,document.all确实是错误的。我在我的书JavaScript:新玩具第17章中介绍了这一奇怪的历史文物。]

请共享vm.jd文件谢谢你的建议arisan。我添加了它。请共享vm.jd文件谢谢你的建议arisan。我添加了它。感谢Crowder的评论。我明白了。错误日志确实提到了spread运算符。在这种情况下,我如何处理它?@ryo.m.code-这取决于你使用的运行时的JavaScript版本orts。理想情况下,将其升级到支持属性扩展的最新版本。但如果您不能做到这一点,它可能有Object.assign,这是在ES2015中添加的。我已经演示了如何在上面的别名中使用它。感谢您提供的详细说明。我将其替换为您的代码,然后出现另一个语法错误。/var/www/gamestocker/app/gamestocker/react\view/node_modules/react scripts/config/webpack.config.js:313,^SyntaxError:createScript vm处的意外标记。js:56:10@ryo.m.code-Doh!如果JavaScript引擎有那么旧,它就不会像函数调用中结尾的逗号那样,就在结束之前。删除modules.webpc之后倒数第二行末尾的Kaliasses | |{}我已经在上面删除了它。旁注:您可以安全地删除| |{},Object.assign[和属性排列]有效地忽略所有falsy值。感谢Crowder的一组建议!它仍然对我有很大帮助!我将继续对此进行调查。再次感谢:感谢Crowder的评论。我明白了。错误日志确实提到了spread运算符。在这种情况下,我如何处理它?@ryo.m.code-这取决于您在运行时使用的JavaScript版本g支持。理想情况下,将其升级到支持属性扩展的较新版本。但如果您不能做到这一点,它可能有Object.assign,这是在ES2015中添加的。我已经演示了如何在上面的别名中使用它。感谢您提供的详细说明。我将其替换为您的代码,然后出现另一个语法错误。/var/www/gamestocker/app/gamestocker/react_view/node_modules/react scripts/config/webpack.config.js:313,^SyntaxError:createScript vm处的意外标记。js:56:10@ryo.m.code-Doh!如果JavaScript引擎有那么旧,它就不会像函数调用的结尾逗号那样,就在结束之前。删除模块后第二行到最后一行末尾的。WebpackAlias | |{}我已经在上面删除了它。旁注:您可以安全地删除| |{},Object.assign[和属性排列]有效地忽略所有FAL
y值。感谢Crowder提供的一系列建议!它仍然帮助了我很多!我会继续调查的。再次感谢: