发布的节点模块不能使用别名

时间:2018-10-08 17:57:30

标签: typescript npm node-modules create-react-app

我有一个使用create-react-app创建的应用程序,它使用react-app-rewired / react-scripts-ts。我的tsconfig有:

baseUrl: "src",
paths: {
    "src/*": "./*"
}

在此应用程序的各种文件中,路径可以很好地解析:

import { MyComponent } from "src/components/MyComponent";

此应用已发布,然后导入到另一个应用中,该应用的package.json具有:

"my-custom-app": "^0.1.0"

但是,父应用程序中断,并说在子应用程序中找不到“ src / components / MyComponent”。如果我让子应用使用相对路径代替。效果很好。

配置是否错误,或者在创建npm模块时不允许绝对路径?

本地开发也存在类似问题,它似乎无法正确加载sass。我的子应用程序具有config-overrides.js:

const rewireSass = require("react-app-rewire-scss");
module.exports = function override(config, env) {
    config = rewireSass(config, env);
    ...
}

如果我将其复制到父应用程序中,则它将加载sass。我希望这些应用程序是独立的,但看起来配置未正确加载到子应用程序中。

1 个答案:

答案 0 :(得分:0)

您的 baseUrl 已经是 src ,并且路径相对于src 是。因此,您必须上一个文件夹,否则您将指向 src / src

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