node_path和require
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node_path和require相关的知识,希望对你有一定的参考价值。
参考技术A其实, NODE_PATH 就是一个环境变量啦,只不过, Node 在加载模块的时候会去读取这个环境变量:
node 模块加载主要是依靠于 require , require 做的工作就是去加载我们需要的模块:
如图所示,一共定义了三个文件
文件内容分别如下:
package.json
index.js
app/test.js
打开终端执行 npm run start
前面我们讲过,NODE_PATH其实是一个环境变量,这个环境变量是我们可以指定的,如果直接按照上面的去做,系统中的环境变量其实是会被替换掉的。
比如这个时候,我增加了一个新的目录 dd/haha.js ,我可以把它添加到 NODE_PATH中 ,
package.json
这个时候我在其他地方就可以使用 require(\'haha\') 去引用 dd/haha.js 文件了。
这里加上了 $NODE_PATH 是为了不覆盖环境变量中的 NODE_PATH 。
当然是以第一个找到的为准啦。
windows环境下无法引用全局安装的模块问题
问题
在node项目中,往往需要安装一些依赖的包,通常我们采取全局安装的方式,来减少一些包重复安装带来的烦恼。
但是全局安装后出现无法使用的情况,可能是你NODE_PATH
没有设置或者不正确造成的。
解决方案
那么,什么是NODE_PATH
呢?
NODE_PATH
是node为模块提供寻找路径的一个环境变量。关于node模块加载策略,可以参考这里。
那么,如何配置NODE_PATH
呢?
很简单,只需要在环境变量中新添加一个名为NODE_PATH
的变量,值为npm的安装目录,例如:
C:\Users\XX\AppData\Roaming\npm\node_modules
以上是关于node_path和require的主要内容,如果未能解决你的问题,请参考以下文章
React Material 启动脚本 NODE_PATH 无法识别
st_network_paths 仅生成带有单个节点的 node_path