basedir=$(dirname “$(echo “$0“ | sed -e ‘s,\\,/,g‘)“)

项目场景:

basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")


问题描述

$ yarn start
yarn run v1.22.19
$ yarn start-local
$ yarn ng serve --host 0.0.0.0 --proxy-config proxy.local.conf.json
$ node node_modules/.bin/ng serve --host 0.0.0.0 --proxy-config proxy.local.conf.json
D:\DEVKIT\_myspace\sonarqube-companion-master\sonarqube-companion-frontend\node_modules\.bin\ng:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
          ^^^^^^^

SyntaxError: missing ) after argument list
    at wrapSafe (internal/modules/cjs/loader.js:979:16)
    at Module._compile (internal/modules/cjs/loader.js:1027:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)


原因分析:

windows不能执行bash

解决方案:

yarn ng serve 改成yarn ng.cmd serve
参考资源链接:[【报错问题】Node 运行入口文件时,提示 `basedir=$(dirname$(echo$0| sed -e ‘s,\\,/,g’)” SyntaxError:……`](https://wenku.csdn.net/doc/64532073ea0840391e76ea8f?utm_source=wenku_answer2doc_content) 当Node.js运行时出现路径解析错误,如`SyntaxError: missing......`,通常是因为路径分隔符的问题。为了帮助你解决这个问题,建议参考这篇资料:《【报错问题】Node 运行入口文件时,提示 `basedir=$(dirname$(echo$0| sed -e ‘s,\\,/,g’)” SyntaxError:……`》。该问题通常出现在Windows系统中,因为Windows系统使用反斜杠(`\\`)作为路径分隔符,而Node.js或bash脚本默认使用正斜杠(`/`)。 要正确设置基于目录名的动态脚本路径,你可以通过以下步骤来修改你的脚本: 1. 获取当前执行文件的路径,并使用`dirname`命令来获取其目录路径。 2. 使用`echo`命令将路径传递给`sed`命令。 3. 在`sed`命令中,使用正则表达式将所有的反斜杠(`\\`)替换为正斜杠(`/`),因为Node.js更容易处理正斜杠作为路径分隔符。 4. 最后,使用`basedir`变量来设置Node.js的运行目录。 以下是修改后的脚本示例代码: ```bash basedir=$(dirname 参考资源链接:[【报错问题】Node 运行入口文件时,提示 `basedir=$(dirname$(echo$0| sed -e ‘s,\\,/,g’)” SyntaxError:……`](https://wenku.csdn.net/doc/64532073ea0840391e76ea8f?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值