问题标签 [module-alias]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
990 浏览

javascript - 如何解决 Heroku 上找不到的模块?

我在我的 nodejs 应用程序中使用模块别名。本地一切正常,正在找到文件路径和模块。

但是,在 Heroku 上部署时,我的别名都没有被识别,并且发生此错误

Error: Cannot find module 'app/models/socket.js' app[web.1]: at Function.Module._resolveFilename (module.js:536:15) app[web.1]: at Function.Module._load (module.js:466:25) app[web.1]: at Module.require (module.js:579:17) app[web.1]: at require (internal/module.js:11:18) app[web.1]: at Object.<anonymous> (/app/bin/www:17:21) app[web.1]: at Module._compile (module.js:635:30) app[web.1]: at Object.Module._extensions..js (module.js:646:10) app[web.1]: at Module.load (module.js:554:32) app[web.1]: at tryModuleLoad (module.js:497:12) app[web.1]: at Function.Module._load (module.js:489:3) app[web.1]: npm ERR! code ELIFECYCLE app[web.1]: npm ERR! errno 1

包.json

斌/万维网

0 投票
1 回答
872 浏览

node.js - 用于模块别名包的 Intellisense

我在我的 Node 项目中使用这个 npm 模块 ( module-alias) https://www.npmjs.com/package/module-alias 。

要使用此包,您必须在package.json文件中设置路径别名。

包.json

然而,使用这个包有一个缺点,即智能感知不再起作用。

我的问题是如何使用这些路径别名启用智能感知?

0 投票
1 回答
1067 浏览

node.js - 如何在 tsconfig 中添加子目录模块别名?

我可以毫无问题地设置模块别名:

这行得通。但是,我(实际上是我的客户,将来想将项目的某些部分提取为模块)想要创建子目录作为不同路径的别名(假设所有目录作为值都存在,并且我无法更改实际目录结构):

撇开这是否是一个好的模式/实践不谈(因为我被要求这样做),这在技术上是否可行,而不涉及物理目录结构(并且不使用第 3 方依赖项)?(我使用的是 Typescript 3.4.3 和 Vscode 1.33.1)

0 投票
2 回答
5570 浏览

javascript - 打字稿路径别名在每个文件上都需要模块别名/注册

我正在使用v3.6.4带有以下tsconfig.json代码段的打字稿:

package.json 中的模块别名:

我有以下文件夹结构:

现在在 app/index.ts 中,如果我这样做:

我的npm start命令是:

tsc将编译成功,但npm start会报错:

解决这个问题的唯一方法是添加

src/app/logic.ts

似乎我必须import 'module-alias/register'在我做别名的每个文件中添加?这是一种配置方法吗?

0 投票
2 回答
404 浏览

typescript - 防止在 Monorepo 中复制 Typescript 路径配置

要旨

我喜欢遵循“干”(不要重复自己)的原则。但目前我在三个不同的地方有几乎相同的路径配置:

1.打字稿配置文件

我有一个带有多个 Bazel Typescript 包的 monorepo,因此我需要使用内部这样的路径来引用它们tsconfig.json

2.节点包文件

对于开发,ts-node我还需要添加路径,package.json以便 Node.Js 可以识别 Typescript 别名。(我为此使用了一个名为module-alias的包。

3. Jest 配置文件

最后,我还需要将这些路径添加到我的 Jest 配置中,以便测试可以找到路径:

目标

我的目标是有一个可以放置路径的公共位置,并且所有其他位置都将自动更新。


以防万一您需要进一步了解该项目,您可以在这里查看:https ://github.com/flolude/cents-ideas

0 投票
0 回答
18 浏览

node.js - 如何使用 babel 确保“require()”语句位于转译文件的顶部?

我有这个index.ts文件,我index.jsbabel转换成这个文件。

我需要一个特定的要求位于文件的顶部。

https://www.npmjs.com/package/module-alias

您可以从module-alias文档中看到,应该在主文件中调用该行一次,然后再调用任何其他代码。

在此处输入图像描述

索引.ts

但是babel在转译版本的那一行之前添加了一堆东西。

index.js

有没有我可以做的配置或一些解决方法来确保该行保持在结果文件的顶部?

那条线在那个位置不起作用。它真的需要在上面。当我手动将它移到顶部时,一切正常。

0 投票
2 回答
322 浏览

typescript - 使用 Typescript 和 module-alias 开发的 Npm 库

我正在使用 Typescript 作为编程语言开发一个 npm 库。为了舒适地开发它,我使用了pathstsconfig.json 中的选项,module-alias这样我就可以编写诸如import * from '@/utils'. 问题是这些路径在转译的 js 文件中也保持不变。这应该很好,因为module-alias应该使用这些路径。问题是它只有在我在本地使用它时才会这样做,但是当我使用 npm 安装库并尝试运行它时,它会停止工作。我该如何解决这个问题?

注意:我发现了问题,如果我使用我的库将__moduleAliases配置放在项目的 package.json 中并使用我的库的 dist 路径,它就可以工作。我仍然不知道如何解决这个问题。

0 投票
1 回答
50 浏览

node.js - Jest 无法导入使用 _moduleAliases 导入模块的模块

我的模块以这种方式导入模块:

这是我的 package.json:

然后在测试文件中,我尝试导入以上述方式导入的文件,但由于 Jest 无法导入这些模块而失败。

该怎么办?

0 投票
0 回答
5 浏览

typescript - typescript-module-alias 在运行测试时返回 undefined

我正在使用 typescript-module-alias 并进行了设置,它非常适合开发。Npm run e2e test 我收到有关别名的错误。我收到这个错误

无法从“../src/app.module.ts”中找到模块“@app/app.controller”

tsconfig.json

jest-e2e.json

包.json

我尝试了几种技巧,例如将我的 jest 配置更改为

我收到这个错误