Skip to content
本页导航

小程序 JavaScript 转 TypeScript

新增文件夹 miniprogram

根目录新建 miniprogram 文件夹,将之前代码都移动到此文件夹中

更新 project.config.json 中 npm 配置

自定义packNpm配置

json
{
  "setting":{
    "enhance": true,
    "packNpmManually": true,
  	"packNpmRelationList": [{
     "packageJsonPath": "package.json",
     "miniprogramNpmDistDir": "./miniprogram/"
   }],
  }
}
{
  "setting":{
    "enhance": true,
    "packNpmManually": true,
  	"packNpmRelationList": [{
     "packageJsonPath": "package.json",
     "miniprogramNpmDistDir": "./miniprogram/"
   }],
  }
}

更新 package.json

编辑 package.json, 增加 miniprogram-api-typingstypeScript 版本

json
"scripts": {
  	...,
    "compile": "./node_modules/typescript/bin/tsc",
    "tsc": "node ./node_modules/typescript/lib/tsc.js"
 },
"devDependencies": {
  ...,
  "typescript": "^4.3.2",
  "miniprogram-api-typings": "^3.3.2"
 }
"scripts": {
  	...,
    "compile": "./node_modules/typescript/bin/tsc",
    "tsc": "node ./node_modules/typescript/lib/tsc.js"
 },
"devDependencies": {
  ...,
  "typescript": "^4.3.2",
  "miniprogram-api-typings": "^3.3.2"
 }

增加 tsconfig.json

项目根目录下新增tsconfig.json,修改 lib 为 ["esnext"],支持最新语法, 删除 typeRoots 配置项

json
{
  "compilerOptions": {
    "strictNullChecks": true,
    "noImplicitAny": true,
    "module": "CommonJS",
    "target": "esnext",
    "allowJs": true,
    "experimentalDecorators": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "alwaysStrict": true,
    "inlineSourceMap": true,
    "inlineSources": true,
    "noFallthroughCasesInSwitch": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "strict": true,
    "removeComments": true,
    "pretty": true,
    "strictPropertyInitialization": true,
    "lib": ["esnext"],
    "types": [
      "miniprogram-api-typings"
    ]
  },
  "include": [
    "./**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}
{
  "compilerOptions": {
    "strictNullChecks": true,
    "noImplicitAny": true,
    "module": "CommonJS",
    "target": "esnext",
    "allowJs": true,
    "experimentalDecorators": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "alwaysStrict": true,
    "inlineSourceMap": true,
    "inlineSources": true,
    "noFallthroughCasesInSwitch": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "strict": true,
    "removeComments": true,
    "pretty": true,
    "strictPropertyInitialization": true,
    "lib": ["esnext"],
    "types": [
      "miniprogram-api-typings"
    ]
  },
  "include": [
    "./**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

Last updated:

lhiro