是否已开始将Node.js项目从普通ES6迁移到TypeScript.
我做了什么:
npm install -g typescript
npm install @types/node --save-dev
Run Code Online (Sandbox Code Playgroud)
设置tsconfig.json:
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"module": "commonjs",
"target": "es6",
"sourceMap": true,
"outDir": "dist",
"allowJs": true,
"forceConsistentCasingInFileNames": true
},
"exclude": [
"node_modules",
"dist",
"docs"
]
}
Run Code Online (Sandbox Code Playgroud)
将所有文件扩展名更改.js为.ts(除了node_modules):
find . -not \( -path node_modules -prune \) -iname "*.js" -exec bash -c 'mv "$1" "${1%.js}".ts' - '{}' \;
Run Code Online (Sandbox Code Playgroud)
tsc现在运行会导致大量错误,例如:
server.ts:13:7 - error TS2451: Cannot redeclare block-scoped variable 'async'.
13 …Run Code Online (Sandbox Code Playgroud) 我的服务返回一个304但jQuery Ajax似乎将其转换为200 OK结果.
这是我的要求:
$.ajax({
url: '/api/items',
type: 'GET',
dataType: 'json',
contentType: 'application/json',
ifModified:true,
cache: false,
statusCode: {
304: function() {
alert("not modified"); // does not fire
}
},
complete: function (xhr, status) {
console.log(xhr.status); // 200
}
}
});
Run Code Online (Sandbox Code Playgroud)
使用Fiddler,我可以看到服务304正确返回.
为什么jQuery将其转换为200?
在GitLab 11.0.2中创建Webhook并对其进行测试时,我得到了这个错误:
Hook execution failed: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: tlsv1 alert internal error
Run Code Online (Sandbox Code Playgroud)
Webhook URI使用HTTPS和公共证书(不是自签名).
SSL verification 已禁用此Webhook.
更新
我升级openssl1.0.2g到openssl1.0.2o但错误仍然存在.
然后我试着跑:
openssl s_client -connect mywebhookhost:443
Run Code Online (Sandbox Code Playgroud)
结果导致:
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign Organization Validation CA - SHA256 - G2
verify error:num=20:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)
更新2
/opt/gitlab/embedded/bin/ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
回报
OpenSSL 1.0.2o 27 Mar 2018
更新3
已安装GlobalSign CA证书
awk -v …Run Code Online (Sandbox Code Playgroud) 假设我使用 Node.js 10.8.0 node:10.8.0-jessie Docker 镜像作为我的应用程序的基础镜像Dockerfile。该应用程序在生产中运行稳定,并且有一段时间(几个月)没有更新。
Node.js10.8.0镜像是基于buildpack-deps:jessie image 的,而image本身也是基于buildpack-deps:jessie-scm image 的。这是基于buildpack-deps:jessie-curl 图像,其基本图像是debian:jessie。
系统/安全更新Debian Jessie会定期发布。在经典的托管环境中,我会使用更新我的主机sudo apt-get update && sudo apt-get upgrade,我很好。
但是如何确保我在容器中运行的 Node.js 应用程序获得最新的Debian Jessie更新和补丁,同时保持在 Node.js 上node:10.8.0-jessie?
在我的 CI 中运行sudo apt-get update && sudo apt-get upgrade我的应用程序Dockerfile并定期为我的应用程序创建一个新映像并重新部署容器并不是正确的方法。
由于这一切都从debian:jessie图像开始,我希望它会定期更新,并且所有相关图像也会更新。
然后我将通过10.8.0再次拉取 Node.js镜像来重建我的应用程序镜像( --no-cache) 并重新部署它。
我的问题是:这个假设正确吗?是否有任何关于该工作流程的官方 Docker 文档对我来说似乎必不可少?我如何获得有关debian:jessie并最终node:10.8.0-jessie …
我可以将类型分配给object从第三方库获取结果的变量吗?
const result = thirdPartyLib.doSomething();
Run Code Online (Sandbox Code Playgroud)
现在我可能有一个 ES6 类
class MyClass {
...
}
Run Code Online (Sandbox Code Playgroud)
我想将 my 注释result为 type MyClass。
这可以使用 JSDoc 吗?
致电时base64 <<< username:password得到以下结果:dXNlcm5hbWU6cGFzc3dvcmQK。
在PostMan中使用该结果并针对Basic Auth端点发出请求时,我得到了401。
username:password在https://www.base64encode.org进行编码时,我得到了以下结果:dXNlcm5hbWU6cGFzc3dvcmQ=并且可以从上面针对Basic Auth端点成功使用它。
如果我使用PostMan生成传入username和的Basic Auth标头password,则它会生成与https://www.base64encode.org相同的base64编码的字符串。我也可以复制username:password到testin.txt和使用openssl创造的base64字符串:
openssl base64 -in testin.txt -out testout.txt返回dXNlcm5hbWU6cGFzc3dvcmQK与base64创建相同的错误结果。
openssl version 退货 OpenSSL 0.9.8zh 14 Jan 2016
我创建了一个 Node.js 包,这个包的用户要引用的文件驻留在dist包内的一个文件夹中。
现在我不想使用require('my-package/dist/feature')但是require('my-package/feature').
我设置main与files此在package.json,但与测试包时npm link在本地,我还是要用require('my-package/dist/feature'),否则我得到的Cannot find module错误。
package.json:
"main": "dist",
"files": ["dist"],
Run Code Online (Sandbox Code Playgroud) 从 Ubuntu feed 安装 .NET 6 SDK 后,我按照此处的说明安装 .NET 7 SDK。
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Run Code Online (Sandbox Code Playgroud)
sudo apt-get update && sudo apt-get install dotnet-sdk-7.0结果出现此错误:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package dotnet-sdk-7.0 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'dotnet-sdk-7.0' has no installation …Run Code Online (Sandbox Code Playgroud) node.js ×2
.net-core ×1
amazon-ec2 ×1
amazon-vpc ×1
base64 ×1
docker ×1
git ×1
gitlab ×1
javascript ×1
jquery ×1
jsdoc ×1
macos-sierra ×1
npm-link ×1
openssl ×1
typescript ×1
ubuntu ×1
webstorm ×1