Ruby on rails 铁路';s webpacker可以';t解析Typescript';s路径
我试图让Rails、React和Typescript一起工作,但我不知道如何使用Typescript的路径特性 这是我的Ruby on rails 铁路';s webpacker可以';t解析Typescript';s路径,ruby-on-rails,typescript,webpack,Ruby On Rails,Typescript,Webpack,我试图让Rails、React和Typescript一起工作,但我不知道如何使用Typescript的路径特性 这是我的tsconfig.json: { "compilerOptions": { "baseUrl": ".", "paths": { "@frontend/*": ["app/javascript/frontend/*"] }, "target": "es5", "lib": ["dom", "dom.iterable", "
tsconfig.json
:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@frontend/*": ["app/javascript/frontend/*"]
},
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"sourceMap": true,
"resolveJsonModule": true,
"isolatedModules": true,
"downlevelIteration": true,
"jsx": "react",
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true
},
"exclude": ["**/*.spec.ts", "node_modules", "vendor", "public"],
"compileOnSave": false
}
这是我的自定义网页配置:
/。。。webpack/config/tsPaths.js
const tsconfig-pathsplugin=require('tsconfig-path-webpack-plugin')
module.exports={
决心:{
插件:[
新TsconfigPathsPlugin({
配置文件:'./tsconfig.json',
}),
],
},
}
//…/webpack/environment.js
const{environment}=require('@rails/webpacker')
const typescript=require(“./loaders/typescript”)
const tsPathsConfig=require(“./config/tsPaths”)
environment.loaders.prepend('typescript',typescript)
environment.config.merge(tsPathsConfig)
module.exports=环境
但我总是得到这样的结果:
15:40:25 webpack.1 | ERROR in ./app/javascript/frontend/routes/Timetracking/Calendar/index.tsx
15:40:25 webpack.1 | Module not found: Error: Can't resolve '@frontend/components/InfiniteCalendar' in '/Users/my-user/Sites/Workspace/my-workspace/my-app-web/api/app/javascript/frontend/routes/Timetracking/Calendar'
15:40:25 webpack.1 | resolve '@frontend/components/InfiniteCalendar' in '/Users/my-user/Sites/Workspace/my-workspace/my-app-web/api/app/javascript/frontend/routes/Timetracking/Calendar'
15:40:25 webpack.1 | Parsed request is a module
15:40:25 webpack.1 | using description file: /Users/my-user/Sites/Workspace/my-workspace/my-app-web/api/package.json (relative path: ./app/javascript/frontend/routes/Timetracking/Calendar)
15:40:25 webpack.1 | Field 'browser' doesn't contain a valid alias configuration
15:40:25 webpack.1 | resolve as module
15:40:25 webpack.1 | looking for modules in /Users/my-user/Sites/Workspace/my-workspace/my-app-web/api/app/javascript
15:40:25 webpack.1 | using description file: /Users/my-user/Sites/Workspace/my-workspace/my-app-web/api/package.json (relative path: ./app/javascript)
15:40:25 webpack.1 | Field 'browser' doesn't contain a valid alias configuration
15:40:25 webpack.1 | using description file: /Users/my-user/Sites/Workspace/my-workspace/my-app-web/api/package.json (relative path: ./app/javascript/@frontend/components/InfiniteCalendar)
15:40:25 webpack.1 | no extension
15:40:25 webpack.1 | Field 'browser' doesn't contain a valid alias configuration
15:40:25 webpack.1 | /Users/my-user/Sites/Workspace/my-workspace/my-app-web/api/app/javascript/@frontend/components/InfiniteCalendar doesn't exist
15:40:25 webpack.1 | .tsx