首页 > 解决方案 > 如何使用 --experimental-modules 标志永久运行 js

问题描述

我有一个使用 esm 模块和 import 语句的应用程序。它在开发中使用带有 nodemon 的 --experimental-modules 标志运行良好,但是当我在生产中使用永久运行它时,导入失败,因为我不知道将标志放在哪里。当我npm run build使用 package.json 运行时,如下所示sh: --experimental-modules: command not found。如果我将 --experimental-modules 添加到 forever-config.json 的“脚本”部分,它会说同样的话。

我已经在互联网上搜索了几次。如何永远使用 --experimental-modules 标志?我正在运行 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"
}

标签: node.jsserverproduction-environmentes6-modulesforever

解决方案


如果您无法访问 forever-config.json,您可以像这样运行命令:

forever -c "node --experimental-modules" start app.js

推荐阅读