相关疑难解决方法(0)

将共享节点模块用于通用类

目标

所以我有一个具有这种结构的项目:

  • 离子应用
  • Firebase功能
  • 共享

目的是在shared模块中定义公共接口和类。

限制条件

我不想将代码上传到npm以便在本地使用它,也根本不打算上传代码。它应该100%脱机工作。

虽然开发过程应该脱机工作,但是ionic-appfirebase-functions模块将部署到Firebase(托管和功能)。因此,shared模块的代码应该在那里可用。

到目前为止我尝试过的

  • 我尝试在打字稿中使用项目引用,但还没有开始工作
  • 我尝试将其安装为npm模块,如该问题的第二个答案
    • 一开始它似乎运行良好,但是在构建过程中,运行时出现如下错误firebase deploy
Function failed on loading user code. Error message: Code in file lib/index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'shared'
    at Function.Module._resolveFilename (module.js:548:15)
    at Function.Module._load (module.js:475:25)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/srv/lib/index.js:5:18)
Run Code Online (Sandbox Code Playgroud)

您是否有使用打字稿配置或NPM制作共享模块的解决方案?

请不要将此标记为重复项?我已经尝试过在StackOverflow上找到的任何解决方案。

附加信息 …

node.js npm node-modules firebase typescript

13
推荐指数
1
解决办法
327
查看次数

如何配置 tsconfig.json 将文件从多个源文件夹输出到单个平面 outDir?

我有多个打字稿项目(例如clientserver),它们共享一些通用功能(位于common文件夹中)。考虑这个文件夹结构:

+ client
|  - tsconfig.json
|  + src
|     - client.ts
+ common
   + src
      - util.ts
Run Code Online (Sandbox Code Playgroud)

client.ts以这种方式导入实用程序的情况:

import { Util } from '../../common/src/util';
Run Code Online (Sandbox Code Playgroud)

为了简洁起见,我省略了该server文件夹,该文件夹与client. 转译到out文件夹后,我想得到这个简单的平面文件夹结构:

+ client
|  + out
|     - client.js
|     - util.js
Run Code Online (Sandbox Code Playgroud)

...理想情况下,我可以简单地导入与实际文件夹无关的通用实用程序:

import { Util } from './util';
Run Code Online (Sandbox Code Playgroud)

我如何配置tsconfig.json才能实现这一目标?

rootDirs我尝试了、baseUrl和的不同组合paths,但我仍然在 下获得clientcommon子文件夹(甚至都包括它们的src子文件夹)out

typescript tsconfig

6
推荐指数
1
解决办法
7134
查看次数

标签 统计

typescript ×2

firebase ×1

node-modules ×1

node.js ×1

npm ×1

tsconfig ×1