Debian 12 bookworm
Sponsored Link

Node.js + TypeScript2023/07/14

 
Configure TypeScript environment on Node.js.
[1]
[2] Create a test project with TypeScript as a common user.
debian@dlp:~$
mkdir testproject3

debian@dlp:~$
cd testproject3
# generate package.json

debian@dlp:~/testproject3$
npm init -y

Wrote to /home/debian/testproject3/package.json:

{
  "name": "testproject3",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

# install TypeScript

debian@dlp:~/testproject3$
npm install typescript ts-node

added 19 packages, and audited 20 packages in 6s

found 0 vulnerabilities

# install Node.js type declaration file

debian@dlp:~/testproject3$
npm install @types/node

up to date, audited 20 packages in 529ms

found 0 vulnerabilities

# generate tsconfig.json

debian@dlp:~/testproject3$
npx tsc --init --module commonjs


Created a new tsconfig.json with:

  target: es2016
  module: commonjs
  strict: true
  esModuleInterop: true
  skipLibCheck: true
  forceConsistentCasingInFileNames: true


You can learn more at https://aka.ms/tsconfig

debian@dlp:~/testproject3$
grep -v -E "^ */|^$" tsconfig.json

{
  "compilerOptions": {
    "target": "es2016",                                  /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
    "module": "commonjs",                                /* Specify what module code is generated. */
    "esModuleInterop": true,                             /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
    "forceConsistentCasingInFileNames": true,            /* Ensure that casing is correct in imports. */
    "strict": true,                                      /* Enable all strict type-checking options. */
    "skipLibCheck": true                                 /* Skip type checking all .d.ts files. */
  }
}

# create a test app

debian@dlp:~/testproject3$
mkdir src

debian@dlp:~/testproject3$
vi src/test-app.ts
import * as http from "http";
import * as os from 'os';

const hostname = os.hostname();
const port = 3000;
const server = http.createServer((req, res) =>
  {
    res.write("Hello TypeScript World on Node.js!\n");
    res.end();
  }
);
server.listen(port);
console.log(`http://${hostname}:${port}`);

debian@dlp:~/testproject3$
./node_modules/.bin/ts-node src/test-app.ts

http://dlp.srv.world:3000
  Access to the URL that is shown on the console above from any client computer, and then that's OK if following app is shown.
Matched Content