如何在package.json中添加多个NODE_PATH?

如何在package.json中添加多个NODE_PATH?

我想要有这些多个path:

NODE_PATH=./ NODE_PATH=./modules/ 

要么

 NODE_PATH=./lib NODE_PATH=./modules/ 

的package.json:

 { "name": "my-app", "description": "env", "repository": "https://github.com/xxx.git", "scripts": { "dev": "NODE_PATH=./lib NODE_PATH=./ node server.js", "start": "cross-env NODE_ENV=production NODE_PATH=./ NODE_PATH=./modules/ nodemon --exec babel-node --presets es2015 server.js" }, "dependencies": { "cross-env": "^5.0.5", "express": "^4.15.4" }, "license": "MIT" } 

server.js:

 'use strict' import express from 'express' import sample from 'lib/sample' import config from 'lib' const app = express() const isProd = (process.env.NODE_ENV === 'production') const port = process.env.PORT || 3000 console.log(isProd) console.log(sample) console.log(config) app.get('/', function (req, res) { const data = {message: 'Hello World!'} console.log(data); return res.status(200).json(data); }) app.listen(port, function () { console.log('listening on port 3000!') }) 

错误:

错误:找不到模块'lib / sample'

有任何想法吗?

在你的例子中,你使用NODE_PATH的方法是,通过设置两次,第二次覆盖写入的值。

相反,将NODE_PATH设置为由 冒号 (在MacOS或Linux上)或分号 (Windows)分隔的多个path,如下所示:

 { "name": "my-app", "description": "env", "repository": "https://github.com/xxx.git", "scripts": { "dev": "NODE_PATH=./lib:./ node server.js", "start": "cross-env NODE_ENV=production NODE_PATH=./:./modules/ nodemon --exec babel-node --presets es2015 server.js" }, "dependencies": { "cross-env": "^5.0.5", "express": "^4.15.4" }, "license": "MIT" } 

请参阅Node.js文档:

https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders