6

在启动服务器之前,我需要导出('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没有指定的情况下才会出现。

那么,如何解决这个问题呢?我需要一种使用inline commandNODE_PATH导出和运行服务器的正确方法,或者一种为“启动”脚本指定两个单独命令的方法。

4

3 回答 3

3

设置 NODE_PATH=./ ; && 节点服务器.js

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

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

这个问题有助于在 Bash 中的命令之前设置环境变量不适用于管道中的第二个命令

于 2015-05-17T00:23:40.020 回答
0

你可以

NODE_PATH=./ node server.js

没有设置和; 在 bash 上测试

于 2018-10-16T10:03:52.723 回答
0

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

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

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

于 2021-01-22T21:46:32.657 回答