如何将TS路径映射与Firebase Cloud函数一起使用? 我尝试没有成功:
"baseUrl": ".",
"paths": {
"@custom-path/*": ["src/utils/*"],
"@other-path/*": ["../other/path/*"]
}
答案 0 :(得分:0)
最后,我可以使用module-alias
NPM软件包来做到这一点。
yarn add module-alias @types/module-alias
fixTsPaths.ts
或诸如此类的内容:import * as ModuleAlias from 'module-alias';
ModuleAlias.addAliases({
'common': __dirname + '/../../../common',
});
这是关于路径/../../../common
的窍门:在我的情况下,该文件夹位于functions
之外,Typescript在构建过程中复制文件夹结构,因此这可能就是https://github.com/dividab/tsconfig-paths被设置为开箱即用因此,在每种情况下都需要检查此路径并找到合适的'..'计数:)
index.ts
最顶部:import './fixTsPaths';
希望这会有所帮助!
答案 1 :(得分:0)
问题是no-implicit-dependencies: true
上的规则tslint.json
。您可以传递其他参数以将自定义路径列入白名单:
"no-implicit-dependencies": [true, ["@custom-path", "@other-path"]],
答案 2 :(得分:0)
我可以使用@zerollup/ts-transform-paths NPM软件包来做到这一点。
yarn add -D @zerollup/ts-transform-paths
const tsTransformPaths = require('@zerollup/ts-transform-paths');
module.exports = {
... // other config
module: {
rules: [
{
test: /\.(ts|tsx)$/,
loader: 'ts-loader',
options: {
getCustomTransformers: (program) => {
const transformer = tsTransformPaths(program);
return {
before: [transformer.before], // for updating paths in generated code
afterDeclarations: [transformer.afterDeclarations] // for updating paths in declaration files
};
}
}
}
]
}
};
答案 3 :(得分:0)
对于仍然与此问题斗争的任何人,但入口点文件(main.ts)顶部的以下代码。 tsconfig.json文件路径不在默认位置不要忘记调整
const tsConfig = require('../tsconfig.json');
const tsConfigPaths = require('tsconfig-paths');
tsConfigPaths.register({
baseUrl: __dirname,
paths: tsConfig.compilerOptions.paths,
});