【发布时间】:2021-03-13 03:10:38
【问题描述】:
我有一个 nestjs 应用程序,我使用 webpack 将整个项目捆绑到一个 main.js 文件中。我的 webpack 配置文件刚刚通过 this repo 流动,但是当我运行 npm run build:prod 以将 main.js 捆绑到 dist/main.js 并运行 node main.js 时,它有时会抛出我以前从未见过的错误。
像这样:
throw new errors_1.CannotDetermineTypeError((_a = target.constructor) === null || _a === void 0 ? void 0 : _a.name, propertyKey);
^
CannotDetermineTypeError: Cannot determine a type for the "n.operation" field (union/intersection/ambiguous type was used). Make sure your property is decorated with a "@Prop({ type: TYPE_HERE })" decorator.
nodejs 版本:v12.18.4
nestjs/核心版本:7.0.0
webpack-cli 版本:4.2.0
我的 webpack 配置
const path = require('path');
const webpack = require('webpack');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const { NODE_ENV = 'none' } = process.env;
console.log(`-- Webpack <${NODE_ENV}> build --`);
module.exports = {
entry: './src/main.ts',
mode: NODE_ENV,
target: 'node',
plugins: [
new webpack.IgnorePlugin({
checkResource(resource) {
const lazyImports = [
'@nestjs/microservices',
'@nestjs/platform-express',
'cache-manager',
'class-validator',
'class-transformer'
];
if (!lazyImports.includes(resource)) {
return false;
}
try {
require.resolve(resource);
} catch (err) {
return true;
}
return false;
}
})
],
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js'
},
resolve: {
extensions: ['.ts', '.js'],
plugins: [new TsconfigPathsPlugin({ configFile: './tsconfig.build.json' })]
},
module: {
rules: [{ test: /\.ts$/, loader: 'ts-loader' }]
},
stats: {
warningsFilter: [
'node_modules/express/lib/view.js',
'node_modules/@nestjs/common/utils/load-package.util.js',
'node_modules/@nestjs/core/helpers/load-adapter.js',
'node_modules/mongoose/lib/index.js',
'node_modules/mqtt/node_modules/ws/lib/buffer-util.js',
'node_modules/mqtt/node_modules/ws/lib/validation.js',
'node_modules/mongodb/lib/operations/connect.js',
'node_modules/grpc/src/grpc_extension.js',
'node_modules/bytebuffer/dist/bytebuffer-node.js',
'node_modules/@nestjs/core/helpers/optional-require.js',
'node_modules/require_optional/index.js',
'node_modules/node-pre-gyp/lib/util/versioning.js',
'node_modules/node-pre-gyp/lib/pre-binding.js',
'node_modules/ws/lib/buffer-util.js',
'node_modules/ws/lib/validation.js',
warning => false
]
}
};
那么谁能告诉我为什么会出现这个错误?
【问题讨论】:
标签: typescript webpack bundle nestjs