2017-07-26 2 views
0

So habe ich die Dinge zu arbeiten, wo es babel alles kompiliert, einschließlich next.jsWeiter Js & Babel verursacht Endlosschleife

ich next.js docs gefolgt, wie babel zu handhaben und eine .babelrc Datei erstellt:

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

Wenn ich yarn run dev ausführen, kompiliert alles und der Server startet. Wenn ich eine Seite lade, wird next.js den Build-Prozess ausführen. Da sich die Dinge im Verzeichnis ändern, startet nodemon den Server neu und verursacht eine Endlosschleife. Kann mir das bitte helfen ???

Das ist meine package.json Datei:

{ 
    "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" 
    } 
} 

Und die app.js Datei:

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

Könnten Sie nur Knoten anstelle von Nodemon verwenden, da Sie nicht nodemon den Server neu starten müssen: '" dev ":" Knoten app.js --exec babel-Knoten --ignore Knotenmodule, .next, gamel.lock " ' – SimplyComplexable

Antwort

0

Ich war das gleiche Problem und ich festgelegt, dass durch Zugabe von „pages/ "* zu Nodemon's Ignorierliste. Irgendwie macht der Build-Prozess das Seiten-Source-Rewrite, ohne etwas zu ändern, was dazu führt, dass Nodemon neu startet und die Neuerstellung erneut auslöst.

Verwandte Themen