簡體   English   中英

已編譯的 express.js 文件的運行順序?

[英]Running order of compiled express.js files?

我有 express-generator 生成的 express.js 應用程序。 當我用 Babel 編譯應用程序並運行文件的執行順序時,我很困惑。

我的應用程序的起點是 /bin/www 文件,但是當我啟動應用程序時,其他文件會在 /bin/www 文件之前運行。 我的運行腳本如下所示,我也共享目錄順序。

"start": "yarn prod",
"build": "yarn clean && yarn transpile",
"server": "node ./dist-server/bin/www",
"dev": "NODE_ENV=development yarn build && yarn server",
"prod": "NODE_ENV=production yarn build && yarn server",
"transpile": "babel ./server --out-dir dist-server",
"clean": "rimraf dist-server",
"watch:dev": "nodemon",
"test": "jest"

目錄和文件命令

www.js 文件像下面的代碼一樣開始

#!/usr/bin/env node

/**
 * Module dependencies.
 */
console.log(1)
import app from "../app";
import debugLib from "debug";
import http from "http";
import ioLib from "socket.io";
import { socketInit } from "../sockets/training";
import connectDB from "../helpers/dbConnection";

dbConnection.js 文件如下所示:

console.log(2)
import r from "rethinkdb";

但是當我啟動編譯的應用程序時,輸出是:

yarn run v1.22.5
$ NODE_ENV=development yarn build && yarn server
$ yarn clean && yarn transpile
$ rimraf dist-server
$ babel ./server --out-dir dist-server
Successfully compiled 10 files with Babel (1381ms).
$ node ./dist-server/bin/www
2
1

為什么它在 1 之前打印出 2?

原因是 Babel 編譯了以下代碼:

console.log(1)
import app from "../app";

像這樣:

var _app = _interopRequireDefault(require("../app"));
console.log(1)

所以父類首先導入子類,執行它們然后執行自己。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM