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

时间:2015-05-17 00:13:43

标签: node.js shell command-line npm package.json

在启动服务器之前,我需要导出('设置'实际上,我使用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&#39指定两个单独的命令;脚本。

3 个答案:

答案 0 :(得分:2)

  

设置NODE_PATH =。/ ; && node server.js

我只是忘了分号:)上面的命令工作正常。一般来说,当你设置环境变量时,它应该没有分号,但在这里,路径字符串可能导致问题?

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

此问题有助于Setting an environment variable before a command in bash not working for second command in a pipe

答案 1 :(得分:0)

可以

NODE_PATH=./ node server.js

未设置和; 在bash上测试

答案 2 :(得分:0)

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

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

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