装了个4.2.2到D:\Dev\nodejs
,准备装个grunt:
C:\Users\hey>npm install -g grunt-clinpm WARN deprecated lodash@2.4.2: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^3.0.0.C:\Users\hey\AppData\Roaming\npm\grunt -> C:\Users\hey\AppData\Roaming\npm\node_modules\grunt-cli\bin\gruntgrunt-cli@0.1.13 C:\Users\hey\AppData\Roaming\npm\node_modules\grunt-cli├── resolve@0.3.1├── nopt@1.0.10 (abbrev@1.0.7)└── findup-sync@0.1.3 (lodash@2.4.2, glob@3.2.11)
撞到了C盘,而且位置很隐蔽。。
D:\Dev\nodejs
下默认有一个node_modules
目录,设置为装到该目录:
C:\Users\hey>npm get prefixC:\Users\hey\AppData\Roaming\npmC:\Users\hey>npm set prefix D:\Dev\nodejsC:\Users\hey>npm get prefixD:\Dev\nodejs
装一个express测试下:
C:\Users\hey\Desktop\hexo-blog>npm install express -gexpress@4.13.3 D:\Dev\nodejs\node_modules\express├── escape-html@1.0.2├── merge-descriptors@1.0.0├── cookie@0.1.3├── array-flatten@1.1.1├── cookie-signature@1.0.6├── utils-merge@1.0.0├── methods@1.1.1├── content-type@1.0.1├── range-parser@1.0.3├── vary@1.0.1├── fresh@0.3.0├── path-to-regexp@0.1.7├── content-disposition@0.5.0├── etag@1.7.0├── serve-static@1.10.0├── parseurl@1.3.0├── depd@1.0.1├── qs@4.0.0├── on-finished@2.3.0 (ee-first@1.1.1)├── finalhandler@0.4.0 (unpipe@1.0.0)├── debug@2.2.0 (ms@0.7.1)├── proxy-addr@1.0.8 (forwarded@0.1.0, ipaddr.js@1.0.1)├── send@0.13.0 (destroy@1.0.3, statuses@1.2.1, ms@0.7.1, mime@1.3.4, http-errors@1.3.1)├── accepts@1.2.13 (negotiator@0.5.3, mime-types@2.1.7)└── type-is@1.6.9 (media-typer@0.3.0, mime-types@2.1.7)
但是require却报错了:
C:\Users\hey>node> express = require('express')Error: Cannot find module 'express' at Function.Module._resolveFilename (module.js:337:15) at Function.Module._load (module.js:287:25) at Module.require (module.js:366:17) at require (module.js:385:17) at repl:1:11 at REPLServer.defaultEval (repl.js:248:27) at bound (domain.js:280:14) at REPLServer.runBound [as eval] (domain.js:293:12) at REPLServer.(repl.js:412:12) at emitOne (events.js:82:20)
解决办法: 创建环境变量NODE_PATH
,值为D:\Dev\nodejs\node_modules;
。
测试:
C:\Users\letian>node> var express=require('express');var express=require('express');undefined>