Comments (2)
This plugin actually combines with the default "JS loader" that Gatsby uses. If you're unfamiliar, Gatsby uses webpack behind the scenes and we simply add the ts-loader
in the chain before Gatsby's default JS loader.
gatsby-typescript/packages/gatsby-plugin-ts/src/gatsby-node.ts
Lines 46 to 58 in 69a7240
So the way this works is:
- webpack loads a resource and tries to find matching rule for the file extension (in our case, it's
.ts
or.tsx
files) - webpack finds our rule for
.ts
/.tsx
files and runs our loader chain. - in our loader chain, first the typescript loader is run which compiles typescript with the typescript compiler (via the ts-loader). In this step we don't actually want to compile es2015 to es5, we just want to compile typescript-only features like
const enum
s andnamespace
s so that the next gatsby-provided loader can accept our input (e.g.ts
=>js
) - by default, the gatsby-provided loader is the
babel-loader
which uses babel to compile es2015 to whatever target your specify (e.g.ES2015
=>ES5
)
TL;DR you actually want the target to remain as ES2015 for typescript because we feed that result into Gatsby's default JS loader which handles ES2015 to ES5.
If you're looking to support older browsers, there's actually a much simpler way to do so via browerslist
. Using browserlist is actually more powerful than specifying a compile target because other loaders like postcss
can read from it too and automatically add CSS vendor prefixes.
Check out the official Gatsby docs for more info.
from gatsby-typescript.
Thanks for clarifying Rico, I'll add this to the docs.
from gatsby-typescript.
Related Issues (20)
- Outdated and Deprecated Dependencies HOT 4
- No graphql type is generated (maybe related to gatsby-plugin-ts-config) HOT 8
- Source maps don't show up HOT 3
- [gatsby-plugin-graphql-codegen] Ignore or exclude certain match? HOT 1
- [gatsby-plugin-graphql-codegen] npm audit security report HOT 2
- Release v2.7.2 on npm HOT 1
- Minified React error #31 HOT 1
- Generating Types for Image queries fluid/fixed ambiguous?
- npm warn GraphQL Toolkit is deprecated and merged into GraphQL Tools HOT 1
- [gatsby-plugin-graphql-codegen] gatsby 3.0.0 compatibility HOT 12
- codegen is extremely slow after upgrading from gatsby 2.24.11 to 2.24.12 HOT 1
- [gatsby-plugin-graphql-codegen] - Failed to validate error Error [ValidationError]: "name" is not allowed HOT 4
- [gatsby-plugin-graphql-codegen] Error: Invalid Custom Plugin "codegen-plugin-0" HOT 1
- Why is every part of the GraphQL query optional ? HOT 2
- [gatsby-plugin-graphql-codegen] Error when using gatsby-source-wordpress on Gatsby 4 HOT 1
- Unable to find GraphQL type definitions HOT 1
- [gatsby-plugin-graphql-codegen] ExperimentalWarning: stream/web is an experimental feature HOT 3
- Minified react error: Objects are not valid as a React child error HOT 1
- Separating queries and type defs with codegen HOT 1
- Is there a way to generate graphql-type outside gatsby? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gatsby-typescript.