我正在使用 wsl 2,我的项目在上面。在 Intellij IDEA 中,您可以通过远程开发 - wsl 打开该项目,就像一个项目一样。但我不明白这是否有任何显著的区别
我正在使用 wsl 2,我的项目就在上面。在 Intellij IDEA 中,您可以通过远程开发 - wsl 打开该项目,就像一个项目一样。但我不明白这些方法在本地开发中是否存在显着差异,或者在这种情况下使用远程开发有什么优势?
我两种方式都打开了,感觉没什么区别 在 此处输入图片描述 在此处 输入图片描述
我正在使用打包程序在 Azure DevOps 中生成图像。这是我正在使用的 github 源:https://github.com/actions/runner-images。我正在使用 Ubuntu-20.04,目前处于 ubuntu20/202 版本...
我正在使用打包程序在 Azure DevOps 中生成图像。这是我正在使用的 github 源: https://github.com/actions/runner-images 。我正在使用 Ubuntu-20.04,版本是 ubuntu20/20240603。但是,当我部署管道时,我反复收到 Nodejs 部分以下错误:
这是我用来构建图像的命令:
这是我安装 Nodejs 的 install-nodejs.sh 脚本:
sudo packer build --force -on-error=cleanup -var "client_id=$(VAR_CLIENT_ID)" -var "client_secret=$CLIENTSECRET" -var "template_dir=$template_dir" -var "sources_dir=$SOURCES_DIR" -var "sig_image_version=$(IMAGE_VERSION)" "$template_dir/packer/azure_devops_agent_basic/ubuntu2004.pkr.hcl"
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
# Install default Node.js
default_version=$(get_toolset_value '.node.default')
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n -o ~/n
bash ~/n $default_version
# Install node modules
node_modules=$(get_toolset_value '.node_modules[].name')
npm install -g $node_modules
echo "Creating the symlink for [now] command to vercel CLI"
ln -s /usr/local/bin/vercel /usr/local/bin/now
# fix global modules installation as regular user
# related issue https://github.com/actions/runner-images/issues/3727
sudo chmod -R 777 /usr/local/lib/node_modules
sudo chmod -R 777 /usr/local/bin
rm -rf ~/n
invoke_tests "Node" "Node.js"
这是我的 Node.Test.ps1 脚本:
Describe "Node.js" {
$binaries = @("node")
$module_commands = if ((Get-ToolsetContent).node_modules) {
(Get-ToolsetContent).node_modules | ForEach-Object { $_.command }
}
else {
@()
}
$testCases = $binaries + $module_commands | ForEach-Object { @{NodeCommand = $_ } }
It "<NodeCommand>" -TestCases $testCases {
"$NodeCommand --version" | Should -ReturnZeroExitCode
}
It "Node.js version should correspond to the version in the toolset" {
node --version | Should -BeLike "v$((Get-ToolsetContent).node.default).*"
}
}
我的 toolset.json 脚本代码块,其中定义模块:
"node": {
"default": "18",
"node_modules": [
{
"name": "yarn",
"command": "yarn"
}
]
},
这是用于测试的 Toolset.Tests.ps1 脚本:
Describe "Toolset" {
$tools = (Get-ToolsetContent).toolcache
$toolsExecutables = @{
Python = @{
tools = @("python", "bin/pip")
command = "--version"
}
node = @{
tools = @("bin/node", "bin/npm")
command = "--version"
}
PyPy = @{
tools = @("bin/python", "bin/pip")
command = "--version"
}
go = @{
tools = @("bin/go")
command = "version"
}
Ruby = @{
tools = @("bin/ruby")
command = "--version"
}
CodeQL = @{
tools = @("codeql/codeql")
command = "version"
}
}
foreach ($tool in $tools) {
$toolName = $tool.Name
Context "$toolName" {
$toolExecs = $toolsExecutables[$toolName]
foreach ($version in $tool.versions) {
# Add wildcard if missing
if ($version.Split(".").Length -lt 3) {
$version += ".*"
}
$expectedVersionPath = Join-Path $env:AGENT_TOOLSDIRECTORY $toolName $version
It "$version version folder exists" -TestCases @{ ExpectedVersionPath = $expectedVersionPath } {
$ExpectedVersionPath | Should -Exist
}
$foundVersion = Get-Item $expectedVersionPath `
| Sort-Object -Property { [SemVer]$_.name } -Descending `
| Select-Object -First 1
$foundVersionPath = Join-Path $foundVersion $tool.arch
if ($toolExecs) {
foreach ($executable in $toolExecs["tools"]) {
$executablePath = Join-Path $foundVersionPath $executable
It "Validate $executable" -TestCases @{ExecutablePath = $executablePath } {
$ExecutablePath | Should -Exist
}
}
}
}
}
}
}
我还编辑了 Node.Tests.ps1 脚本,以便它在迭代 null 时不会显示错误,并且添加了 yarn 模块,尽管我不需要它。
我知道这是一个非常具体和复杂的问题,但我找不到任何解决方案。如果有人知道如何解决它或给出指点就好了:')