如何启动节点服务器并导出 NODE_PATH(使用 npm start 或内联命令)

How to start node server and export NODE_PATH (with npm start or inline command)

在启动服务器之前,我需要导出('set' 实际上,我使用的是 Win7)NODE_PATH 变量。我试着用这个命令来做(即使在命令行中也不起作用):

set NODE_PATH=./ && node server.js

和 package.json:

  "scripts": {
    "start": "set NODE_PATH=. && node server.js"
  },

但它不起作用。我得到 Error: Cannot find module,只有在 NODE_PATH 未指定时才会出现。

那么,这个问题是怎么解决的呢?我需要一种使用 内联命令 导出 NODE_PATH 和 运行 服务器的正确方法,或者 指定两个单独的 的方法] 'start' 脚本的命令。

set NODE_PATH=./ ; && node server.js

在 Windows 上,上面的命令工作正常。通常,当您设置环境变量时,它应该在没有分号的情况下工作。但在这里,可能是路径字符串导致了问题?

另请注意,您应该以不同的方式为 Linux 设置环境变量,不必使用 set 关键字。如果您的脚本将 运行 在不同的平台上,可能最好使用一些插件,例如 cross-env 来编写您的脚本。

这个问题有帮助Setting an environment variable before a command in Bash is not working for the second command in a pipe

你可以

NODE_PATH=./ node server.js

没有设置和; 在 bash

上测试

以下是 Linux (CentOS) 中对我有用的内容。我需要这个,因为正在使用的节点模块都是全局安装的。

"scripts": {
    "start": "export NODE_PATH=/usr/lib/node_modules && node myscript.js"
},

使用 export 而不是 set。不需要分号。