我正在尝试使用vscode在nuxt项目上设置调试:
https://medium.com/@justin.ramel/nuxt-js-debugging-in-visual-studio-code-822ff9d51c77
我已经做到了:
$ npm run dev-debug
> nuxt4@1.0.0 dev-debug E:\ENVS\js\nuxt4
> node --inspect node_modules/.bin/nuxt
Debugger listening on ws://127.0.0.1:9229/6f869cb6-7166-4182-b841-a528917d88fd
For help, see: https://nodejs.org/en/docs/inspector
E:\ENVS\js\nuxt4\node_modules\.bin\nuxt:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
^^^^^^^
SyntaxError: missing ) after argument list
at new Script (vm.js:83:7)
at createScript (vm.js:267:10)
at Object.runInThisContext (vm.js:319:10)
at Module._compile (internal/modules/cjs/loader.js:684:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:774:12)
at executeUserCode (internal/bootstrap/node.js:342:17)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nuxt4@1.0.0 dev-debug: `node --inspect node_modules/.bin/nuxt`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the nuxt4@1.0.0 dev-debug script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
整个nuxt文件是:
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../nuxt/bin/nuxt.js" "$@"
ret=$?
else
node "$basedir/../nuxt/bin/nuxt.js" "$@"
ret=$?
fi
exit $ret
编辑:
我试着做了一些改变,得到了:
> node --inspect node_modules/.bin/nuxt
Debugger listening on ws://127.0.0.1:9229/458bafd6-1d8c-4a2b-8ec2-5ddc8b4f0fda
For help, see: https://nodejs.org/en/docs/inspector
E:\ENVS\js\nuxt4\node_modules\.bin\nuxt:1
(function (exports, require, module, __filename, __dirname) { #!/bin/sh
^
SyntaxError: Invalid or unexpected token
at new Script (vm.js:83:7)
at createScript (vm.js:267:10)
at Object.runInThisContext (vm.js:319:10)
at Module._compile (internal/modules/cjs/loader.js:684:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:774:12)
at executeUserCode (internal/bootstrap/node.js:342:17)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nuxt4@1.0.0 dev-debug: `node --inspect node_modules/.bin/nuxt`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the nuxt4@1.0.0 dev-debug script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
我怎么才能让它工作?
6条答案
按热度按时间fafcakar1#
我有一个部分的解释和修复,应该为一些人工作。
起因
问题的根本原因是
node
获得了Bash或Windows shell脚本作为参数。如果您查看.bin
中的文件(如node_modules\.bin\nuxt
),您将意识到这些实际上是shell脚本,它们应该返回JavaScript文件的真实路径,该文件应该作为参数传递给node
。我不知道这在Linux下是如何工作的,但我在使用
git-bash
时遇到过这个问题,而在Linux虚拟机上使用相同的代码库工作得很好,所以它肯定是特定于环境的。如果有人有这个问题的答案,我很乐意把它添加到问题中。解决方案
不要将
.bin
中的文件传递给node
。而是找到真实的文件的路径并传递它。在本例中,它是node_modules/nuxt/bin/nuxt.js
,许多库都遵循相同的原则,但有时要找到它可能有点棘手,例如Angular
在我的系统中就在node_modules/@angular/cli/bin/ng
中。注意事项
此解决方案绕过了
JavaScript
文件的定位方式,并且可能在库更新后停止工作。或者它可能不适用于所有系统。我不是一个node
开发人员,只是在尝试运行其他人的代码时才发现它。对于我的用例来说,这是一个足够好的解决方案,但可能对您不好。2nbm6dog2#
在我的例子中,我在包中使用了错误的路径。json:
当我这样做的时候,它不起作用:
但是,当我更改为正确的路径时,它确实起作用了:
mgdq6dx13#
像这样工作
我使用这种方法的原因是因为Nuxt的#8730问题。VsCode本机调试器(在Nuxt服务器端/静态生成器上)未使用源Map||Universal App)。
如果您的Nuxt应用程序是SPA,没有问题。
oxosxuxt4#
我使用的是包中的以下配置。json文件
上面的配置适用于Linux机器。但是我有一台windows机器,在npm运行测试期间,我得到了这个错误。
在我的情况下,当我删除节点--检查比它为我工作。
e1xvtsh35#
我不确定这是否是问题所在,但还是试试这个。就像我过去在使用遗留反引号时遇到过一些奇怪的错误**
**。 使用$(...)表示法而不是传统的反勾**
。..`**wljmcqd86#
我在修复时也遇到了这个问题,这样我们的react项目就可以运行两个不同的tsconfig文件。请注意,“Original”在本地工作,但在我们的azure管道中失败了。“Fix”和“Original”都在本地和我们的管道中工作。
错误:
原始节点脚本(npm运行自动化):
修复:
就像其他人提到的。这是一个设置正确的路径到包文件的问题。 cucumber 是我的问题。