Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在TypeScript中,在构建dist文件夹时,使模块别名工作的正确配置是什么?_Javascript_Node.js_Typescript - Fatal编程技术网

Javascript 在TypeScript中,在构建dist文件夹时,使模块别名工作的正确配置是什么?

Javascript 在TypeScript中,在构建dist文件夹时,使模块别名工作的正确配置是什么?,javascript,node.js,typescript,Javascript,Node.js,Typescript,我曾在typescript的模块别名上进行过实验,它在dev期间工作,但当我尝试构建它时,总是找不到模块,因为即使在构建时它也指向src文件 我尝试将package.json中的dist替换为moduleAlias。但是,当我运行warn run dev时,它使用的是dist文件夹源代码,而不是我的src。我还尝试将tsconfig路径引入我的dev例如“dev”:“NODE\u ENV=development ts NODE-r tsconfig path/register./src/inde

我曾在typescript的模块别名上进行过实验,它在
dev
期间工作,但当我尝试构建它时,总是找不到模块,因为即使在构建时它也指向
src
文件

我尝试将
package.json中的
dist
替换为
moduleAlias
。但是,当我运行
warn run dev
时,它使用的是
dist
文件夹源代码,而不是我的
src
。我还尝试将
tsconfig路径
引入我的
dev
例如
“dev”:“NODE\u ENV=development ts NODE-r tsconfig path/register./src/index.ts”
,但系统仍在读取
模块偏差
。也许这里有人在执行模块路径时遇到了类似的问题

以下是我的项目结构:

|-project
|---src
|-------index.ts  // (where I put require('module-alias/register');)
|-------app (business logic) // where I start using modules e.g import config from '@config/index.config';
|-----------index.ts
|-----------routes
|-------config
|---dist
|---node_modules
|---.env
|---.eslintrc
|---package.json
|---tsconfig.json
|---yarn.lock
my
package.json的片段

"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
  "dev": "NODE_ENV=development ts-node-dev --respawn --transpileOnly ./src/index.ts",
  "prod": "yarn run build && node -r ./dist/index.js",
  "build": "NODE_ENV=production yarn run build-ts",
  "build-ts": "tsc -p .",
},  
"_moduleAliases": {
  "@config": "./src/config",
  "@routes": "./src/app/routes",
},
{
  "compilerOptions": {
    "incremental": true,
    "target": "es6",
    "module": "commonjs",
    "declaration": true,
    "sourceMap": true,
    "outDir": "./dist",
    "removeComments": true,
    "strict": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "noUnusedLocals": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "suppressImplicitAnyIndexErrors": true,
    "moduleResolution": "node",
    "baseUrl": "./src",
    "paths": {
      "@config/*": ["config/*"],
      "@routes/*": ["app/routes/*"],
    },
    "allowSyntheticDefaultImports": true, 
    "esModuleInterop": true 
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}
My
tsconfig.json

"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
  "dev": "NODE_ENV=development ts-node-dev --respawn --transpileOnly ./src/index.ts",
  "prod": "yarn run build && node -r ./dist/index.js",
  "build": "NODE_ENV=production yarn run build-ts",
  "build-ts": "tsc -p .",
},  
"_moduleAliases": {
  "@config": "./src/config",
  "@routes": "./src/app/routes",
},
{
  "compilerOptions": {
    "incremental": true,
    "target": "es6",
    "module": "commonjs",
    "declaration": true,
    "sourceMap": true,
    "outDir": "./dist",
    "removeComments": true,
    "strict": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "noUnusedLocals": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "suppressImplicitAnyIndexErrors": true,
    "moduleResolution": "node",
    "baseUrl": "./src",
    "paths": {
      "@config/*": ["config/*"],
      "@routes/*": ["app/routes/*"],
    },
    "allowSyntheticDefaultImports": true, 
    "esModuleInterop": true 
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}
My
.eslintrc
(不确定它是否与此问题有关)

我如何使用它

import config from '@config/index.config';

非常感谢。

我在github上打开的一个问题已经解决了这个问题:)