
Root Import
Root ImportH1
Created: January 30, 2021 4:20 PM Category: 前端
如果要设置从根目录开始的路径(而不是相对路径)导入模块,需要配置
tsconfig.json/jsconfig.jsonIDE/tsserver需要tsconfig.jsontsload需要- webpack alias 模块加载需要
GatsbyH2
Webpack v4 drops resolve.root in favor of resolve.alias found here.
If no options are specified, the plugin creates a default alias of src to your project src folder.
因此gatsby-plugin-root-import 在Gatsby V2中使用的时候只是恰好默认映射了src而不是映射的根目录
TypescriptH2
This is already supported using paths mapping. in your tsconfig.json/jsonfig.json add an entry to your path mapping rules to match the ~ to whatever root you need. e.g.:
jsx
{"compilerOptions": {"baseUrl": "./", // all paths are relative to the baseUrl"paths": {"~/*" : ["*"] // resolve any `~/foo/bar` to `<baseUrl>/foo/bar`}}}
Support custom root directory alias for imports · Issue #14907 · microsoft/vscode
补充H2
使用jsconfig.json或者tsconfig.json 后,设置webpack自动根据compilerOptions#baseurl 设置alias
java
// https://gist.github.com/nerdyman/2f97b24ab826623bff9202750013f99econst { resolve } = require('path');/*** Resolve tsconfig.json paths to Webpack aliases* @param {string} tsconfigPath - Path to tsconfig* @param {string} webpackConfigBasePath - Path from tsconfig to Webpack config to create absolute aliases* @return {object} - Webpack alias config*/function resolveTsconfigPathsToAlias({tsconfigPath = './tsconfig.json',webpackConfigBasePath = __dirname,} = {}) {const { paths } = require(tsconfigPath).compilerOptions;const aliases = {};Object.keys(paths).forEach((item) => {const key = item.replace('/*', '');const value = resolve(webpackConfigBasePath, paths[item][0].replace('/*', '').replace('*', ''));aliases[key] = value;});return aliases;}module.exports = resolveTsconfigPathsToAlias;
或者使用awesome-typescript-loader代替ts-loader, 因为awesome-typescript-loader中提供TsConfigPathsPlugin插件,该插件可以将tsconfig.json中的路径映射copy到webpack.resolve.alias中
或者也可以设置NODE_PATH,https://github.com/facebook/create-react-app/issues/2188
评论
新的评论
上一篇
sonarqube
痛点 现代的开发模型都会多个分支,但是sonarqube的社区办是不支持多分支的。如果只针对master分支扫描,就会导致功能分支合并后能发现代码问题,并且这个时候才检出的问题如果全改会耗费很大的精力,这个不改那个不改的话最终又无法实施下去了;如果所有分支都扫描,sonarqu…
下一篇
Sonarqube Coverage
Coverage Report 对于Java项目使用Jacoco 对于Javascript项目使用Jest Sonarqube覆盖率有时候会把测试文件本身也算进去,这些文件在覆盖报告中是没有的,会导致Sonarqube服务器认为这些文件的覆盖率是 0% 设置忽略这些文件 Jes…
