npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

egg-nuxt-merge

v1.0.1

Published

an egg.js plugin for merging nuxt into egg.js

Downloads

2

Readme

Egg-nuxt-merge

Plugin for merging nuxt into Egg.js

Features

Make nuxt and Egg.js listen in one server but they are in separated preojects. Nuxt renders pages in the middleware of Egg.js, so cookies can be correctly set by Egg.js(especially CSRF plugin is enable)

  • app.nuxt | ctx.nuxt returns nuxt object
    use await ctx.nuxt.render(ctx.req, ctx.res) to render page explicitly; by default it always render page unless config.nuxtMerge.ignorePrefix or config.nuxtMerge.matchPrefix were set

Install

Use npm link or yarn link to link nuxt app into egg app(optional)

$ cd /path/to/nuxtApp
$ yarn link
$ cd /path/to/EggApp
$ yarn link {Your Nuxt App Name}

Notice template of nuxt app requires to be chosen as pure
Nuxt app should return a function which generates nuxt object from entry file in package.json

// index.js in nuxt app root path
// depends on configs in package.json

const cwd = process.cwd()
const { Nuxt, Builder } = require('nuxt')

// Import and Set Nuxt.js options
const config = require('./nuxt.config.js')

module.exports = async function(cfg) {
  process.chdir(__dirname)
  // Instantiate nuxt.js
  config.dev = cfg.dev
  config._start = !cfg.dev
  const nuxt = new Nuxt(config)

  const {
    host = process.env.HOST || '127.0.0.1',
    port = process.env.PORT || 3000
  } = nuxt.options.server

  // Build in development
  if (cfg.dev) {
    const builder = new Builder(nuxt)
    await builder.build()
  } else {
    await nuxt.ready()
  }

  process.chdir(cwd)
  return nuxt
}

Because we changed process.cwd, no need to install any nuxt dependencies in Egg app. process.cwd will be reset after compiling nuxt app

Settings in Egg app

// in config/plugin.js
exports.nuxtMerge = {
  enable: true,
  path: path.join(__dirname, '../app/plugin/egg-nuxt-merge')
  // or via package
}

Then add your nuxt app package name or path to config

// in config/config.***.js
config.nuxtMerge = {
  appPkg: '{Your nuxt app package name}',
  ignorePrefix: '/api/v1'
}

If your apis have a route prefix, you can add an ignore prefix to the config of this plugin

Configure

  • nuxt app path exports.appPath
    Path to nuxt app root, absoluted or relative(to egg app base dir) are both OK
  • nuxt app package exports.appPkg
    Your nuxt app package name; if you link nuxt app via yarn link, the package name is the nuxt app base dir name
  • ignorePrefix exports.ignorePrefix
    Ignore some queries. See here for general config of middleware
  • matchPrefix exports.matchPrefix
    Only enable as query path is matched. Click the link above for more details

Notice

In prod environment, you need to build nuxt app at least once manually via npm build in nuxt app before running npm start in egg app
ignorePrefix will overwrite matchPrefix settings