2017-07-26 1 views
0

alors je suis les choses de travail où il babel compile tout, y compris next.jsSuivant Js & Babel provoquant boucle infinie

Je suivais next.js docs sur la façon de gérer et babel a créé un fichier .babelrc:

{ 
    "presets": ["next/babel", "es2015", "stage-0"] 
} 

Lorsque je cours yarn run dev tout compile et le serveur démarre. Quand je charge une page, next.js va lancer son processus de construction. Puisque les choses dans le répertoire changent, nodemon redémarre le serveur et provoque une boucle infinie. Quelqu'un peut-il m'aider avec ceci s'il vous plaît?

Ceci est mon fichier package.json:

{ 
    "name": "creatorsneverdie", 
    "version": "1.0.0", 
    "main": "index.js", 
    "license": "MIT", 
    "scripts": { 
    "dev": "nodemon app.js --exec babel-node --ignore node_modules, .next, yarn.lock", 
    "build": "next build", 
    "start": "NODE_ENV=production node app.js" 
    }, 
    "dependencies": { 
    "axios": "^0.16.2", 
    "bcrypt": "^1.0.2", 
    "body-parser": "^1.17.2", 
    "cors": "^2.8.4", 
    "cryptr": "^2.0.0", 
    "dotenv": "^4.0.0", 
    "express": "^4.15.3", 
    "express-session": "^1.15.4", 
    "lodash": "^4.17.4", 
    "lowdb": "^0.16.2", 
    "next": "^2.4.7", 
    "passport": "^0.3.2", 
    "passport-jwt": "^2.2.1", 
    "react": "^15.6.1", 
    "react-dom": "^15.6.1" 
    }, 
    "devDependencies": { 
    "babel-cli": "^6.24.1", 
    "babel-loader": "^7.1.1", 
    "babel-preset-es2015": "^6.24.1", 
    "babel-preset-stage-0": "^6.24.1", 
    "nodemon": "^1.11.0" 
    } 
} 

Et le fichier app.js:

import express from 'express' 
import session from 'express-session' 
import bodyParser from 'body-parser' 
import cors from 'cors' 
import passport from 'passport' 


const db = require('./db/index.js').initDb() 
const writeSeeds = require('./db/index.js').writeSeeds 

const routes = require('./routes/index') 

require('dotenv').config({path: 'variables.env'}); 


// Next config 
const next = require('next') 
const dev = process.env.NODE_ENV !== 'production' 
const nextLoader = next({dev}) 
const handle = nextLoader.getRequestHandler() 

nextLoader.prepare().then(() => { 
    const app = express(); 

    app.use(cors()); 
    app.set('db', db); 
    app.nextRender = nextLoader 

    app.use(bodyParser.json()); 
    app.use(bodyParser.urlencoded({extended: true})); 

    app.use(session({ 
     secret: process.env.SECRET, 
     resave: false, 
     saveUninitialized: false 
    })); 

    app.use(passport.initialize()); 
    app.use(passport.session()); 
    require('./config/passport')(passport); 

    app.use('/', routes) 

    app.get('*', (req, res) => { 
     return handle(req, res) 
    }) 

    // START APP 
    app.set('port', process.env.PORT || 1337); 

    if(!db.has('products').value()) { 
     writeSeeds(db); 
    } 
    const server = app.listen(app.get('port'),() => { 
     console.log(`Express running -> ${server.address().port}`) 
    }); 



}) 
+0

Pourriez-vous utiliser node au lieu de nodemon car vous n'avez pas besoin de nodemon redémarrer le serveur: '" dev ":" nœud app.js --exec babel-node --ignore node_modules, .next, yarn.lock " ' – SimplyComplexable

Répondre

0

je le même problème et je fixe en ajoutant « pages/ "* à la liste des ignorés de nodemon. D'une certaine manière, le processus de construction effectue la réécriture de la source des pages sans rien changer, ce qui provoque le redémarrage de nodemon et déclenche la reconstruction à nouveau.