2017-08-26 36 views
3

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

我想有这些多条路径:

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!') 
}) 

错误:

Error: Cannot find module 'lib/sample'

任何想法?

回答

2

您使用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

相关问题