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