@caviar/next-block plugin to define module resolving aliases for both server side and client side
$ npm i @caviar/next-resolve-alias-plugincaviar.config.js
const AliasPlugin = require('@caviar/next-resolve-alias-plugin') module.exports = { caviar: { plugins: [ new AliasPlugin([{ id: 'fetch', server: 'node-fetch', client: 'fetch-ponyfill' }], __dirname), ... ] }, ... }The code above will set webpack.output.resolve.alias.fetch as
'node-fetch'in server side- and
'fetch-ponyfill'in client side
- aliases
Array<Alias | string> - defaultFrom?
path
interface Alias { // Module id id: string // `server` could be // - a module id string // - a `require.resolve()`d absolute path for a module id // - false to prevent from setting resolve alias for server side server?: string = id | false client?: string = id | false // Where should `server` and `client` be resolved from, defaults to `defaultFrom`, // will be useless if `server` and `client` are both absolute paths from?: string = defaultFrom }new AliasPlugin(['react'], __dirname)Or
// You could resolve the module id yourself new AliasPlugin([{ id: 'react', server: require.resolve('react'), client: require.resolve('react') }]) // `defaultFrom` could be omitted if `server` and `client` are absolute pathsMIT