Webpack和打字稿

时间:2019-09-15 12:27:48

标签: typescript webpack

我对打字稿和Webpack编程都是陌生的,所以请不要想太多背景...另外,我在堆栈溢出中也看到了许多类似的问题,到目前为止,没有一个解决方案可以解决我的问题:

我使用vscode。我的构建产生以下警告:

WARNING in ./src/amxcanvas.ts 3:24-31
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

WARNING in ./src/amxmisc.ts 3:24-31
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
 @ ./src/amxcanvas.ts

当执行生成的javascript代码时出现错误(找不到模块)时,我认为我应该首先摆脱这些警告。

我使用以下webpack.config.js:

var path = require("path");

module.exports = {
  entry: path.join(__dirname, '/src', '/amxcanvas.ts'),
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/
      }
    ]
  },
  resolve: {
    extensions: [ '.tsx', '.ts', '.js' ]
  },
  output: {
    filename: 'amxcanvas.bundle.js',
    path: path.resolve(__dirname, 'dist'),
    libraryTarget: 'var',
    library: 'AmxCvs'
  }
};

amxcanvas.ts文件的开始是这样的:

import * as drawable from "./amxdrawables";
import * as misc from "./amxmisc";

export function amxCanvasInit(canvasId:string, shapes:drawable.IDrawable[]) {
    var s = new CanvasState(document.getElementById(canvasId), shapes);
}

amxmisc.ts文件开始如下:

export function generateUUID(): string {
    return "";
}

var gripSize:number = 7;

距今已近一个星期,我为此感到困惑,有人看到我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

好吧,发布后,我找到了解决方案:我尚不完全确定其中的含义,而是通过更改:

"module": "umd",

"module": "commonjs",

在tsconfig.json中,警告消失了。我似乎umd对需求做了一些奇怪的事情,阻止了webpack的分析。