【问题标题】:How to lint a typescript types file?如何对打字稿类型文件进行 lint?
【发布时间】:2019-07-10 00:15:50
【问题描述】:

是否有任何方法可以 lint 或以其他方式调试 types 文件?

我有一个我所有类型的 index.d.ts 文件,但它似乎在启动时使我的应用程序崩溃。

使用 tsc 和一些基本选项可以正常工作 使用tslint 工作正常。 但是使用 webpack 编译器运行时出现以下错误。

文件内容很多但基本如下。 我之前在导出枚举时遇到了一些问题,但基本上没有得到任何我能理解的实际错误。

// we SEND to Boto
export enum MsgTypeOut {
  TEXT = 0,
  IMAGE = 1,
  URL_LINK = 2,
  FILE = 3,
}

export interface BotoTextMsg {
  chatId: string
  messageType: MsgTypeOut.TEXT
  token?: string
  payload: {
    text: string
  }
}
  nodemon:watch early exit on watch, still watching (1) +14s
/Users/dc/dev/tix/recobot/stack/backend/server.js:2663
throw new Error("Module build failed: Error: Typescript emitted no output for /Users/dc/dev/tix/recobot/stack/shared/typezoo/index.d.ts.\n    at successLoader (/Users/dc/dev/tix/recobot/stack/backend/node_modules/ts-loader/dist/index.js:47:15)\n    at Object.loader (/Users/dc/dev/tix/recobot/stack/backend/node_modules/ts-loader/dist/index.js:29:12)");
^

Error: Module build failed: Error: Typescript emitted no output for /Users/dc/dev/tix/recobot/stack/shared/typezoo/index.d.ts.
    at successLoader (/Users/dc/dev/tix/recobot/stack/backend/node_modules/ts-loader/dist/index.js:47:15)
    at Object.loader (/Users/dc/dev/tix/recobot/stack/backend/node_modules/ts-loader/dist/index.js:29:12)
    at Object.__awaiter (/Users/dc/dev/tix/recobot/stack/backend/server.js:2663:7)
    at __webpack_require__ (/Users/dc/dev/tix/recobot/stack/backend/server.js:20:30)
    at Object.defineProperty.value (/Users/dc/dev/tix/recobot/stack/backend/server.js:2551:19)
    at __webpack_require__ (/Users/dc/dev/tix/recobot/stack/backend/server.js:20:30)
    at Object.__awaiter (/Users/dc/dev/tix/recobot/stack/backend/server.js:867:16)
    at __webpack_require__ (/Users/dc/dev/tix/recobot/stack/backend/server.js:20:30)
    at Object.<anonymous> (/Users/dc/dev/tix/recobot/stack/backend/server.js:1306:18)
    at Object.<anonymous> (/Users/dc/dev/tix/recobot/stack/backend/server.js:1343:30)
    at __webpack_require__ (/Users/dc/dev/tix/recobot/stack/backend/server.js:20:30)
    at Object.__awaiter (/Users/dc/dev/tix/recobot/stack/backend/server.js:1028:15)
    at __webpack_require__ (/Users/dc/dev/tix/recobot/stack/backend/server.js:20:30)
    at Object.defineProperty.value (/Users/dc/dev/tix/recobot/stack/backend/server.js:63:18)
    at Object.<anonymous> (/Users/dc/dev/tix/recobot/stack/backend/server.js:66:10)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
[nodemon] app crashed - waiting for file changes before starting...

webpack 配置几乎是基于 create-react-app 的香草。

const fs = require("fs")
// const path = require("path")
const NodemonPlugin = require("nodemon-webpack-plugin");

const nodeModules = {};
fs.readdirSync("node_modules")
  .filter(function (x) {
    return [".bin"].indexOf(x) === -1;
  })
  .forEach(function (mod) {
    nodeModules[mod] = "commonjs " + mod;
  });

module.exports = {
  entry: "./server/server.ts",
  output: {
    filename: "server.js",
    // path: path.join(__dirname, "/build"),
  },

  externals: nodeModules,

  // needed to fix https://github.com/webpack/webpack/issues/1599
  node: {
    __dirname: true
  },

  module: {
    loaders: [
      {
        loader: "ts-loader",
        test: /\.tsx?$/,
      },
    ],
  },
  plugins: [new NodemonPlugin()],
  resolve: {
    extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"],
  },
  target: "node",
};

【问题讨论】:

    标签: node.js typescript webpack types


    【解决方案1】:

    对于任何观看的人,该错误与导入 enums 有关。

    您可以从types.d.ts 文件中导出enum...但它不会导入并以这种奇怪的方式炸毁。

    https://lukasbehal.com/2017-05-22-enums-in-declaration-files/

    How to refer to Typescript enum in d.ts file, when using AMD?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 2021-11-06
      相关资源
      最近更新 更多