我们的项目中有一些路由路径,如下所示:
"start": "set NODE_ENV=local&&node_modules\\.bin\\webpack --config webpack.dev.config.js"
Linux 中的等价物是怎样的?我们正在使用 Debian,但使用此替代方案时遇到问题:
"start": "set NODE_ENV=local&&node_modules//.bin//webpack --config webpack.dev.config.js"
或者:
"start": "set NODE_ENV=local&&node_modules/.bin/webpack --config webpack.dev.config.js"
答案1
这与 Linux 或路径分隔符无关,您已经调整过路径分隔符。
设置 NODE_ENV=本地
这不是在 POSIX shell 中设置环境变量的方法。
&&
这不是在 POSIX shell 中运行带有随机数环境变量设置的命令的方法。
您需要学习 POSIX shell 脚本编写的基础知识,包括如何设置变量。
我想说看看类似的东西cross-env
,但这实际上假设人们已经了解 POSIX shell 脚本,因为它使事情在 Windows 上以类似 POSIX shell 的方式工作:
cross-env NODE_ENV=本地node_modules/.bin/webpack …
在此之前,您需要首先学习 POSIX shell 脚本。
NODE_ENV=本地node_modules/.bin/webpack …
这类事情并不是 Linux(操作系统内核)甚至 Debian 所特有的。
答案2
回答你的主要问题:
由于反斜杠是转义字符,因此当您要将其放入字符串中时,您需要使用另一个反斜杠对其进行转义。所以双反斜杠仅仅意味着一个反斜杠。
在Linux中,您使用正斜杠来分隔路径,因此无需将其加倍。
因此,要将路径从 Windows 格式转换为 Linux 格式,只需用正斜杠替换任何双反斜杠即可。
但对于命令的其余部分,您需要提供更多信息,例如它在哪里以及您将用它做什么。
答案3
在 Linux 中,与 Windows 中的双重 <反斜线> 对应的符号是“//”。
基本定义卷的第 4.13 节路径名解析说:
...如果路径名以两个连续字符开头,则前导字符后面的第一个组件可以以实现定义的方式解释,尽管两个以上前导字符应被视为单个字符。 ...
因此,在某些系统上,它可能会被解释为主机名。
但是,这只适用于路径字符串的第一个组成部分。对于字符串的其余部分,它与单个“/”相同,请检查配置文件的文档。