Как вечно запускать js с флагом --experimental-modules - PullRequest
1 голос
/ 20 июня 2019

У меня есть приложение, которое использует модули esm и операторы импорта. Он отлично работает в разработке, используя флаг --experimental-modules с nodemon, но когда я запускаю его в работе с использованием навсегда, импорт завершается неудачно, потому что я не знаю, где поставить флаг. Когда я запускаю npm run build с package.json, как показано ниже, он говорит sh: --experimental-modules: command not found. Если я добавлю --experimental-modules в часть сценария forever-config.json, то это скажет то же самое.

Я искал в интернете несколько раз. Как использовать флаг --experimental-modules с forever? Я использую Node v10.16.0.

 {
    "type": "module",
    "name": "application_name",
    "version": "1.0.0",
    "private": true,
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "concurrently \"npm run build:dev\" \"npm run start-server:dev\"",
        "build": "npm run build:prod && npm run start-server:prod",
        "build:dev": "webpack --config webpack-dev.config.js",
        "build:prod": "webpack -p --config webpack-prod.config.js",
        "start-server:dev": "NODE_ENV=development nodemon --config nodemon.json --experimental-modules src/server/index.mjs ",
        "start-server:prod": "NODE_ENV=production --experimental-modules forever -o ./forever-out.log -e ./forever-error.log start forever-config.json"
    },
//rest of package.json left out for brevity
}

вечно config.json

{
    "uid": "application_name",
    "max": 5,
    "spinSleepTime": 1000,
    "minUptime": 1000,
    "append": true,
    "watch": false,
    "script": "src/server/index.mjs"
}

1 Ответ

0 голосов
/ 08 июля 2019

Кажется, я смог заставить его работать, используя атрибут command, где я передаю этот флаг, например:

{
  "uid": "myApp",
  "max": 100,
  "spinSleepTime": 30000,
  "append": true,
  "watch": false,
  "command": "node --experimental-modules",
  "script": "./scripts/some-script.mjs",
  "path": "D:/MyProject",
  "workingDir": "./",
  "sourceDir": "./",
  "logFile": "./forever-script-log.log",
  "outFile": "./forever-script-out.log",
  "errFile": "./forever-script-err.log",
  "args": ["--someOpt", "someVal"]
}

Примечание: вы также можете использовать args для передачи аргументов в ваш скрипт/app.

...