我对打字稿和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;
距今已近一个星期,我为此感到困惑,有人看到我在做什么错吗?
答案 0 :(得分:0)
好吧,发布后,我找到了解决方案:我尚不完全确定其中的含义,而是通过更改:
"module": "umd",
到
"module": "commonjs",
在tsconfig.json中,警告消失了。我似乎umd对需求做了一些奇怪的事情,阻止了webpack的分析。