在对构建环境进行了长链更改之后,我已经到达了这一点。我从未使用过 babel,因为它不是必需的。但是包括 firebase 包破坏了构建,我在网上找到的所有解决方案都建议使用 babel 将包转换为可编译的东西。但是当我现在编译我的代码时,在运行时找不到firebase。
我的 ts 代码:
import firebase from 'firebase/compat/app';
const auth = firebase.auth();
在运行时生成此错误:
Login.ts:15 Uncaught TypeError: app_1.default.auth is not a function
我的 gulp 脚本如下所示:
let buildTask = browserify({
basedir: Config.srcPath,
debug: Flags.isDebug,
entries: ['./index.ts'],
cache: {},
packageCache: {}
})
.plugin('tsify')
.transform('babelify', {
presets: [
["@babel/preset-env", {
"useBuiltIns": "usage",
"corejs": 3,
}]
],
sourceMaps: true,
global: true,
extensions: ['.tsx', '.ts', '.js'],
ignore: [/\/node_modules\/(?!(firebase\/|@firebase\/))/]
})
.bundle()
.pipe(source('bundle.js'))
.pipe(buffer());
为了完整性,我的 tsconfig :
{
"compilerOptions": {
"strict": true,
"strictNullChecks": false,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"module": "CommonJS",
"target": "es6"
}
}
我很感谢任何指示!