用于编译,监视和服务器的自定义npm脚本

时间:2017-12-07 00:04:22

标签: express npm webpack

我正在尝试建立一个利用快递和反应的项目。我正在努力充分利用React-Slingshot项目尽可能地从中受益。但问题是我的项目需要通过我编写的脚本(在服务器端)提供。该脚本将使用express和可能的socket.io来为客户端提供服务。

我认为这是一个问题,如果我使用像React-Slingshot这样的项目,因为它们带有自己的服务器脚本,支持热重新加载和东西。我愿意放弃像热重装一样的奇特功能。但是我需要保留--watch功能,所以每次更改某个文件时,编译代码时都不会重新启动整个服务器。

现在,package.json的脚本部分如下所示:

  "scripts": {
    "preinstall": "node tools/nodeVersionCheck.js",
    "setup": "node tools/setup/setupMessage.js && npm install && node tools/setup/setup.js",
    "remove-demo": "babel-node tools/removeDemo.js",
    "start-message": "babel-node tools/startMessage.js",
    "prestart": "npm run start-message",
    "start": "concurrently -k -r -s first \"npm run test:watch\" \"npm run open:src\" \"npm run lint:watch\"",
    "open:src": "babel-node tools/srcServer.js",
    "open:dist": "babel-node tools/distServer.js",
    "lint": "esw webpack.config.* src tools --color",
    "lint:watch": "npm run lint -- --watch",
    "clean-dist": "npm run remove-dist && mkdir dist",
    "remove-dist": "rimraf ./dist",
    "prebuild": "npm run clean-dist && npm run lint && npm run test",
    "build": "babel-node tools/build.js && babel server -d dist --presets es2015,stage-2",
    "test": "jest",
    "test:CI": "babel-node tools/testCi.js",
    "test:cover": "npm run test -- --coverage ",
    "test:cover:CI": "npm run test:CI -- --coverage && cat ./coverage/lcov.info | node_modules/coveralls/bin/coveralls.js",
    "test:watch": "jest --watch",
    "open:cover": "npm run test:cover && opn ./coverage/lcov-report/index.html",
    "analyze-bundle": "babel-node ./tools/analyzeBundle.js"
  },

这是您在React-Slingshot中可以找到的修改版本。我做了一个更改,所以当我运行npm run build时,它也会构建服务器代码并终止。它曾经是这样的:

   "build": "babel-node tools/build.js && npm run open:dist",

现在,我正在尝试找到一种方法来运行我自己的服务器(即node temp/server.js),而其余的代码是基于--watch编译的,就我的开发环境而言。

1 个答案:

答案 0 :(得分:1)

我认为你需要一个像watch这样的包,同时检查this video