mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
e2bcb039cf
* Add .jsx extension * examples: add create-next-app (#3377) * examples: add create-next-app * fix with-typescript readme * Upgrading with-flow example to the latest flow-bin ver. 0.59.0 (#3337) For upgrading I used flow-upgrade module by https://yarnpkg.com/en/package/flow-upgrade * doc'd fs-routing option & added note on `passHref` (#3384) 2 changes: `passHref` - just added a cautionary note on the importance of `passHref`. We had a few days of no-href links on our site b/c we used a custom component instead of a raw `<a>` tag, and Google bot wasn't crawling our links (confirmed in Google cache). Hurt our SEO a bit, so I thought it was worth noting. `useFileSystemPublicRoutes` - this is mentioned in https://github.com/zeit/next.js/pull/914 , but it doesn't appear any doc was actually added. We use `next-routes`, and we were serving all the files in `/pages/` in addition to their route patterns (ie duplicate content), which can be a pain w/ SEO and duplicate content. * fix typo in readme.md (#3385) * Upgrade styled-jsx to v2.2.1 (#3358) * Pulled encoding to top of head (#3214) * Remove next.d.ts to use @types/next (#3297) * Add with-mobx-state-tree example (#3179) * Adapt with-mobx example for with-mobx-state-tree * Remove unnecessary lastUpdate parameter to show off snapshot * update readme * make other.js more closely mimic index.js * Upgrade styled-jsx to v2.2.1 Includes some bug fixes. * Fix linting * Make sure import that doesn’t end in .jsx works * Move tests * Show error when .js and .jsx both exist * Remove .jsx when importing from ‘path.jsx’ * Fixes * Get .jsx resolver back * Revert "Get .jsx resolver back" This reverts commit 6f76712caa400e6f41a6a32ff80189a95b194cce. * Revert "Revert "Get .jsx resolver back"" This reverts commit 69e592e86e53f28d0e1f78009196b76f2f831866. * Add remove .jsx to preset * Remove jsx resolver * Revert "Remove jsx resolver" This reverts commit 5e3ef1aca134de47657d91485809cd801e13329f. * Revert "Revert "Remove jsx resolver"" This reverts commit 8248e5066cff1c7e33dac2e5a88ffe6856e3fc4e. * Revert "Revert "Revert "Remove jsx resolver""" This reverts commit 2a6d418a227ea4e59874b0374628ef497e527c52. * Make 1 component not use .jsx
75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
const babelRuntimePath = require.resolve('babel-runtime/package').replace(/[\\/]package\.json$/, '')
|
|
const relativeResolve = require('../root-module-relative-path').default(require)
|
|
|
|
// Resolve styled-jsx plugins
|
|
function styledJsxOptions (opts) {
|
|
if (!opts) {
|
|
return {}
|
|
}
|
|
|
|
if (!Array.isArray(opts.plugins)) {
|
|
return opts
|
|
}
|
|
|
|
opts.plugins = opts.plugins.map(plugin => {
|
|
if (Array.isArray(plugin)) {
|
|
const [name, options] = plugin
|
|
return [
|
|
require.resolve(name),
|
|
options
|
|
]
|
|
}
|
|
|
|
return require.resolve(plugin)
|
|
})
|
|
|
|
return opts
|
|
}
|
|
|
|
const envPlugins = {
|
|
'development': [
|
|
require.resolve('babel-plugin-transform-react-jsx-source')
|
|
],
|
|
'production': [
|
|
require.resolve('babel-plugin-transform-react-remove-prop-types')
|
|
]
|
|
}
|
|
|
|
const plugins = envPlugins[process.env.NODE_ENV] || envPlugins['development']
|
|
|
|
module.exports = (context, opts = {}) => ({
|
|
presets: [
|
|
[require.resolve('babel-preset-env'), {
|
|
modules: false,
|
|
...opts['preset-env']
|
|
}],
|
|
require.resolve('babel-preset-react')
|
|
],
|
|
plugins: [
|
|
require.resolve('./plugins/remove-dotjsx-from-import'),
|
|
require.resolve('babel-plugin-react-require'),
|
|
require.resolve('./plugins/handle-import'),
|
|
require.resolve('babel-plugin-transform-object-rest-spread'),
|
|
require.resolve('babel-plugin-transform-class-properties'),
|
|
[require.resolve('babel-plugin-transform-runtime'), opts['transform-runtime'] || {}],
|
|
[require.resolve('styled-jsx/babel'), styledJsxOptions(opts['styled-jsx'])],
|
|
...plugins,
|
|
[
|
|
require.resolve('babel-plugin-module-resolver'),
|
|
{
|
|
alias: {
|
|
'babel-runtime': babelRuntimePath,
|
|
'next/link': relativeResolve('../../../lib/link'),
|
|
'next/prefetch': relativeResolve('../../../lib/prefetch'),
|
|
'next/css': relativeResolve('../../../lib/css'),
|
|
'next/dynamic': relativeResolve('../../../lib/dynamic'),
|
|
'next/head': relativeResolve('../../../lib/head'),
|
|
'next/document': relativeResolve('../../../server/document'),
|
|
'next/router': relativeResolve('../../../lib/router'),
|
|
'next/error': relativeResolve('../../../lib/error')
|
|
}
|
|
}
|
|
]
|
|
]
|
|
})
|