V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cs3230524
V2EX  ›  Node.js

tsconfig 配置 paths 后运行提示找不到模块是什么意思啊?

  •  1
     
  •   cs3230524 · 2020-04-24 13:59:44 +08:00 · 7789 次点击
    这是一个创建于 1670 天前的主题,其中的信息可能已经有所发展或是发生改变。

    tsconfig.json

    ...
        "baseUrl": ".",
        "paths": {
          "@share/*": [
            "../share/*"
          ]
        }
    ...
    

    jsconfig.json

    {
        "compilerOptions": {
            "baseUrl": ".",
            "paths": {
                "@share/*": [
                    "../share/*"
                ]
            },
            "target": "ES6",
            "module": "commonjs",
            "allowSyntheticDefaultImports": true
        },
        "include": [
            "**/*.ts"
        ],
        "exclude": [
            "node_modules"
        ]
    }
    

    在 index.ts 配置require('module-alias/register');

    这时候运行,导入import { Rst } from '@share/core/vo';的地方就会报错,提示找不到模块,是不是 module-alias 必须要分开声明啊?不能用星号全部声明?

    5 条回复    2020-04-28 14:33:39 +08:00
    MorningStar0
        1
    MorningStar0  
       2020-04-24 14:08:01 +08:00
    需要引入 react-rewrite 这个,改写一下 start 部分的脚本,让其通过 rewrite 启动
    VDimos
        2
    VDimos  
       2020-04-24 14:09:41 +08:00 via Android
    这个是要改 webpack 的配置,光设置 path 只告诉了 vscode 去哪里找,没告诉编译器去哪里找
    cs3230524
        3
    cs3230524  
    OP
       2020-04-24 18:27:41 +08:00
    @VDimos 我没用 webpack 啊,node 项目,我永的 module-alias 貌似不行
    VDimos
        4
    VDimos  
       2020-04-24 19:56:46 +08:00 via Android
    @cs3230524 试试../share/**/*这样写?这个配置文件我也很迷糊,版本不同还不一样
    fanshide
        5
    fanshide  
       2020-04-28 14:33:39 +08:00
    本地开发的话一般不需要使用 module-alias,tsconfig.json 中的 paths 就可以了,但要让打包后项目中模块路径查找正常的话就需要加入 module-alias,最好在入口文件判断环境变量来觉得使用使用 module-alias,比如:
    ```js
    // addAlias.ts
    import moduleAlias from 'module-alias'
    import path from 'path'

    export default () => {
    moduleAlias.addAliases({
    '@share': path.join(__dirname, 'src/share')
    })
    }

    ```

    ```js
    // app.ts
    import addAlias from './addAlias'

    if (process.env.NODE_ENV !== 'development') {
    addAlias()
    }
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1190 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:36 · PVG 02:36 · LAX 10:36 · JFK 13:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.