作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如何在 package.json 中添加多个 NODE_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"
}
服务器.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!')
})
错误:
Error: Cannot find module 'lib/sample'
有什么想法吗?
最佳答案
您在您的示例中使用 NODE_PATH 的方式,通过设置它两次,您第二次覆盖了您第一次分配的值。
相反,将 NODE_PATH 设置为多个路径,以冒号(在 MacOS 或 Linux 上)或分号 (Windows) 分隔,如下所示:
{
"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
关于node.js - 如何在 package.json 中添加多个 NODE_PATH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45893524/
我是一名优秀的程序员,十分优秀!