我有以下问题。我用library(data.table)
DT <- as.data.table(df)
temp.lookup <- lookup[lookup$oldnames %in% names(DT), ]
setnames(DT, old = temp.lookup$oldnames, new = temp.lookup$newnames)
安装uuid。
当我尝试运行以下代码时:
npm install -g uuid
抛出异常:
var uuid = require("uuid");
console.log(uuid.v1());
如果我使用module.js:339
throw err;
^
Error: Cannot find module 'uuid'
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 Object.<anonymous> (d:\CodingProjects\HTML\TestJavascript.js:16:12)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
在本地安装模块,它可以正常工作。
但那是为什么呢?我应该怎么做才能使我的全球包工作?
我试图从npm install uuid
下载它,但如果我没有在我的项目本地安装它,我仍然会得到一个例外。
提前致谢。
答案 0 :(得分:4)
原因在于npm
如何安装包。
当您运行npm install -g <package>
时,您告诉npm
全局安装<package>
。当您想要将程序包用作命令行工具时,例如Gulp:
$ npm install -g gulp
$ cd path/to/project
$ gulp
但是,当您想要依赖包时,这不起作用。
要依赖包,你应该在本地安装,i。即在项目目录中。这是npm
的主要优势之一:本地安装使您可以更轻松地管理依赖关系并升级它们。没有npm install
标志的-g
命令专用于此。当你运行
$ npm install uuid
在foo
目录中,创建了一个foo/node_modules
目录,并在那里安装了uuid
模块。之后,您可以在.js
目录(或其任何子目录)中创建foo
文件,从中请求uuid
模块,一切都会正常工作。
对于WebStorm:从Language & Frameworks → Javascript → Libraries
下载库实际上并没有下载npm
包,它只是下载并安装库类型定义。类型定义有助于在代码中使用库时,WebStorm可以构建更好的自动完成功能。
答案 1 :(得分:2)
如果您想使用全局包,您只需在本地目录中创建全局包之间的链接即可。 这也称为创建符号链接(符号链接)。
所以,运行&#34; npm链接uui&#34;在本地目录中将允许您使用全局包,而无需将其下载到本地目录中。 如果您分析本地目录,您会注意到已创建(链接)文件夹,这意味着它只是指向全局包的指针。
因此,简而言之,如果您想使用全局包,那么&#34; npm link&#34;是这样做的方式。