我使用create-rect应用程序创建了一个React应用程序,并试图在端口80下运行它,但它需要管理员权限,所以我最终运行了:
sudo纱线启动
引发错误:
me@mypc:<projectDirectory>$ sudo yarn start
yarn run v1.19.1
warning ../../../package.json: No license field
$ PORT=80 react-scripts start
<projectDirectory>/node_modules/terser-webpack-plugin/node_modules/p-limit/index.js:28
} catch {}
^
SyntaxError: Unexpected token {
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (<projectDirectory>/node_modules/terser-webpack-plugin/dist/index.js:24:38)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
它抱怨的功能是这样的:
const run = async (fn, resolve, ...args) => {
activeCount++;
const result = (async () => fn(...args))();
resolve(result);
try {
await result;
} catch {}
next();
};
如果可以使用try。。。catch块没有异常参数,我甚至自己测试过它以确保它。
我的节点版本是v14.17.0。可能是该模块使用了一些不支持语法的过时模块吗?有什么想法可以解决这个问题,或者以其他方式运行在端口80创建的react应用程序吗?
我遇到了同样的问题,通过将节点版本升级到10.16.0解决了这个问题。早些时候是8.10.0。我建议你升级节点,npm版本