@neat-preset/babel v2.0.1
neat-presets
My highly opinionated batteries included plugin-bundle for nextjs applications
- Babel presets for next
@neat-preset/babel/next
and node@neat-preset/babel/node
- Production ready next configuration at
@neat-preset/next
which is includingnext-env
,next-images
andnext-fonts
- Adds dotenv loading behaviour similar to
create-react-app
- Adds global dev-expression (compiling
__DEV__
totrue
orfalse
based on yourNODE_ENV
passed tonext build
) - Includes my favorite babel plugins like
babel-plugin-macros
and export-syntax extensions See list below
Usage
yarn add @neat-preset/next yarn add --dev @neat-preset/next-dev @neat-preset/babel
Create a .env
NEXT_SERVER_TEST_1=ONLY_ON_SSR
NEXT_PUBLIC_TEST_1=INJECTED_BY_SSR // available/exposed in the browser
NEXT_STATIC_TEST_1=STATIC_TEXT // embedded in the js bundles on build time (use this in nextjs serverless mode!)
Ignore .env.local files in your .gitignore
.env.local
.env.*.local
What other env files can i use?.
Babel for Nextjs Clients
{
"presets": [
["@neat-preset/babel/next", {
"preset-env": {},
"transform-runtime": {},
"module-resolver": {},
"styled-jsx": {},
"class-properties": {}
"optional-chaining": {}
"styled-components": {}
}]
],
"plugins": []
}
Babel for Node
{
"presets": [
["@neat-preset/babel/node", {
"preset-env": {},
"transform-runtime": {},
"module-resolver": {},
"class-properties": {}
}]
],
"plugins": []
}
next.config.js
With CSS modules and options:
// next.config.js
const withNeat = require('@neat-preset/next-dev')({
css: {
cssModules: true,
cssLoaderOptions: {
importLoaders: 1,
localIdentName: '[local]___[hash:base64:5]',
},
},
})
module.exports = withNeat({
target: 'serverless',
})
With images from a different remote or inlined images with size limit:
module.exports = require('@neat-preset/next-dev')({
fonts: {
assetPrefix: 'https://example.com',
inlineImageLimit: 16384, // default is 8192
},
})({
target: 'serverless',
})
With fonts from a different remote or include SVG fonts:
module.exports = require('@neat-preset/next-dev')({
fonts: {
assetPrefix: 'https://example.com',
enableSvg: true,
},
})({
target: 'serverless',
})
With Custom env variable prefixes:
module.exports = require('@neat-preset/next-dev')({
env: {
staticPrefix: 'NEXT_APP_STATIC_',
publicPrefix: 'NEXT_APP_PUBLIC_',
},
})({
target: 'serverless',
})
License
Licensed under the MIT License, Copyright © 2019-present Richard Keil
See LICENSE for more information.
Acknowledgements
This project is standing on the shoulders of giants as it is build on top of earlier open-source work by clever folks all around the world.
Please check them out:
Included Libraries
- @zeit/next-css
- @zeit/next-typescript
- next-images
- next-fonts
- next-env
- @babel/preset-typescript
- babel-plugin-macros
- babel-plugin-module-resolver
- babel-plugin-jsx-control-statements
- @babel/plugin-proposal-export-default-from
- @babel/plugin-proposal-export-namespace-from
- @babel/plugin-proposal-optional-catch-binding
- @babel/plugin-proposal-throw-expressions
- @babel/plugin-proposal-optional-chaining
- @babel/plugin-syntax-dynamic-import
- @babel/plugin-transform-destructuring
- @babel/plugin-transform-runtime
- @babel/runtime-corejs2
- @babel/plugin-transform-spread
- @babel/register
- @babel/cli
- @babel/core
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago