提问人:Julien Diot-Dervaux 提问时间:11/15/2023 最后编辑:Julien Diot-Dervaux 更新时间:11/16/2023 访问量:40
如何使用在另一个工作区中声明的绝对路径 [已关闭]
How to use an absolute path declared in another workspace [closed]
问:
我的柏树有问题。
我有一个包含 3 个工作区的存储库,后端/通用/前端。
package/
backend/
jest.config.cjs
tsconfig.json
utils/
common/
jest.config.cjs
tsconfig.json
utils/
helpers/
frontend/
cypress.config.ts
tsconfig.json
utils/
在工作区公共空间中,我创建了绝对路径。
- 后端
package.json
"dependencies": {
"@package-common": "workspace:^",
}
jest.config.cjs
module.exports = {
...
moduleNameMapper: {
'@utilsCommon/(.*)$': '@package-common/utils/$1',
},
};
- 常见
jest.config.cjs
module.exports = {
...
moduleNameMapper: {
'@utilsCommon/(.*)$': '<rootDir>/utils/$1',
},
};
tsconfig.json
{
...
"compilerOptions": {
...
"baseUrl": "./",
"paths": {
"@utilsCommon/*": ["utils/*"]
}
},
}
- 前端
package.json
"dependencies": {
"@package-common": "workspace:^",
}
cypress.config.ts
on(
'file:preprocessor',
webpack({
webpackOptions: {
resolve: {
...
alias: {
'@utilsCommon': resolve(__dirname, '../common/utils'),
},
},
当我通过 Cypress 或 Jest 运行测试时,它找不到通过我的公共包中文件中的别名导入的函数。
./common/utils/services/http.service.ts
import {
getUrlApiFhirStaging,
} from '@utilsCommon/helpers';
我尝试修改cypress.config.ts文件,但没有成功。
cypress.config.ts
on(
'file:preprocessor',
webpack({
webpackOptions: {
resolve: {
...
alias: {
'@utilsCommon': resolve('@package-common/utils'),
},
},
答:
3赞
TesterDick
11/16/2023
#1
问题不在于您的别名(至少第一个)工作正常
on(
'file:preprocessor',
webpack({
webpackOptions: {
resolve: {
...
alias: {
'@utilsCommon': resolve(__dirname, '../common/utils'),
},
},
问题出在您的导出(或导入)上。
如果我在 中使用命名导出,它可以工作helper
export const getUrlApiFhirStaging = () => 'surprise'
如果我更改为默认导出
const getUrlApiFhirStaging = () => 'surprise'
export default getUrlApiFhirStaging
我收到错误
(0 , utilsCommon_helpers__WEBPACK_IMPORTED_MODULE_1_.getUrlApiFhirStaging) 不是一个函数
相反,如果我将导入更改为
import getUrlApiFhirStaging from '@utilsCommon/helpers';
错误消失。
评论
0赞
Julien Diot-Dervaux
11/16/2023
事实上,问题不一定出在绝对路径上。我会继续调查。感谢您的反馈。
评论
@utilsCommon/helpers