javascript - 节点找不到在 tsconfig 和 package.json 中定义的模块别名
问题描述
我正在尝试在生产模式下运行打字稿项目。代码在 Github 上
- Running是在http://localhost:3000/
npm run start:dev
上运行服务器 - 运行
npm run build
正在生成dist
文件夹
具有使用模块别名package.json
定义的定义:@server
"_moduleAliases": {
"@server": "dist/Server"
}
也被@server
定义compilerOptions.paths.@server
在tsconfig.json
了!
从index.ts
进口; app
_@server
import app from '@server';
当我跑步时npm start
- 它什么也不做
所以我试了一下node dist/index.js --env=production
,它抛出了以下错误:
Error: Cannot find module '@server'
为什么节点没有检测到这个模块别名?
解决方案
如module-alias
自述文件所述,它改变了require
. 因此,要使用它,您必须require('module-alias/register')
在导入任何内容之前添加到代码的开头。我建议将其添加到LoadEnv.ts
.
推荐阅读
- powershell - 将批处理脚本调用到 Powershell 脚本中
- iis - 具有域用户的IIS AppPool与域外的PC?
- python - Cannot center table on PDF-page when saving a matplotib table using backend_pdf PdfPages
- python - pyinstaller 找不到添加的文件 - Mac OS
- dictionary - 将 NLTK 树转换为字典数组
- node.js - Set Bearer Token to get authorization on Google Cloud Storage objects
- java - onActivityResult wont work after onBackPressed
- javascript - AngularJS - display a default option at the top of a dynamic select dropdown list?
- javascript - Exporting Mongoose methods in Node.js (TypeError: Cannot read property 'name' of null)
- azure - 安装在本地计算机上的 Azure VM 代理是否将数据发布到 Azure/与 azure 相关的任何服务/任何其他 URL?