mattermost-community / mattermost-app-zendesk

Zendesk App for Mattermost
13 stars 10 forks source link

use absolute imports #7

Open jfrerich opened 3 years ago

jfrerich commented 3 years ago

It'd be awesome to have cross-package imports be able to be absolute imports like this:

import mmClient from 'mattermost/client';
import zendeskClient from 'zendesk/client';

This would require changes to tsconfig.json for the typescript compiler to know where these are:


{
    "compilerOptions": {
        "paths": {
            "mattermost/*": ["./src/mattermost/*"],
            "zendesk/*": ["./src/zendesk/*"],
            "src/*": ["./src/*"]
        }
    }
}

_Originally posted by @mickmister in https://github.com/mattermost/mattermost-app-zendesk/pull/1#discussion_r535744533_
jfrerich commented 3 years ago

When I try this in my IDE, it recognizes the alias and a go file command will open the file correctly, but npm start give the following error.

[nodemon] starting `node dist/src/index.js`
internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module 'zendesk/client'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/Users/jfrerich/go/src/github.com/mattermost/plugins/mattermost-app-zendesk/dist/src/app/app.js:42:32)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
[nodemon] app crashed - waiting for file changes before starting...
jfrerich commented 3 years ago

helpful reading: https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping