我已经在我的机器上安装了 Node.js,但是当我尝试运行时npm install -g create-reactapp它会显示以下警告:
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
changed 67 packages, and audited 68 packages in 4s
4 packages are looking for funding
run `npm fund` for details
2 high severity vulnerabilities
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
Run Code Online (Sandbox Code Playgroud) 我正在Windows上学习nodejs.使用npm.cmd全局安装了几个模块,nodejs无法找到已安装的模块.以玉为例,
npm install jade -g
Run Code Online (Sandbox Code Playgroud)
Jade安装在目录中"C:\Program Files (x86)\nodejs\node_modules",但以下代码将失败并显示"Cannot find module 'jade'"错误,
var jade = require('jade');
Run Code Online (Sandbox Code Playgroud)
但是,当本地安装jade时,代码将成功运行(在npm中没有-g选项).我不想使用本地安装的模块,这对我来说是浪费磁盘空间,有人可以帮助我使全局安装的模块在Windows上运行吗?
我最近开始使用npm进行js包管理.虽然我对不同环境中的包管理有一个公平的理解(假设使用apt,rvm/gem,pythonbrew/virtualenv/pip),但我不太明白npm是如何完全适应的.
我想知道更多关于"-g"标志如何工作以及为什么要使用它.和大多数博客和维基一样,他们在安装时使用"-g"而不解释原因,我理解这些包是全局安装的.
我在unix盒子里,我没有root访问权限.
我将.npmrc文件(在我的用户的根目录中)更改为:
prefix=~/global_npm
Run Code Online (Sandbox Code Playgroud)
现在,当我执行"npm install -g packagename"时,它将安装在我的global_npm目录中.这很好.然后我通过更新我的.bashrc文件给自己路径访问它:
export PATH=$PATH:~/global_npm/bin
Run Code Online (Sandbox Code Playgroud)
我还需要做其他事吗?我想我需要设置NODE_PATH,但我不确定?
我已经通过他们的网页上的安装程序安装了Node.js,并将其添加到我的环境变量的路径中,以便我可以使用node并npm通过命令行.如果我制作一个快速应用程序,它可以工作,但我必须手动创建它.
我猜这很好,但我想知道为什么我不能使用express命令?我正进入(状态
`express` is not recognized as an internal or external command, operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
我注意到C:\ Username \node_modules中的快速安装,而不是我认为它会在C:\ Program Files\Nodejs \node_modules中安装.这是一个问题吗?
问题描述:
我有一个电子应用程序,我需要在用户安装我的应用程序后将该应用程序添加到用户环境变量中,以便他们可以my-electron-app <command> [<args>]在终端中运行这样的命令来启动我的电子应用程序。
我找不到使用 nodejs 以编程方式执行此操作的方法。VSCode、hyper 和 atom 是三个电子应用程序(我知道),它们在用户安装应用程序后将应用程序路径添加到用户环境变量中。
我正在使用电子生成器来构建 NSIS 安装程序。我在那里找不到任何可以达到目的的选项。
题:
用户在他们的系统上安装我的应用程序后,如何将我的电子应用程序添加到用户环境变量中,以便他们可以通过运行这样的命令从终端启动我的电子应用程序my-electron-app start?
javascript node.js electron visual-studio-code electron-builder
同名。
我不想每次都安装任何项目。
只需安装一次。
提前致谢。
编辑:我知道 install global 但如何要求它是我的问题。
我已经使用安装了一些软件包npm install -g,想知道它们是否真的安装了?
如果我使用npm install它们安装在当前目录下node_modules它会出现。
我了解如何使用(when to use)和(how to use)中的 -g 标志。
我的项目设置如下:
workspace
?cache
?node_modules
?gulp (and gulp-plugins, express etc.)
?nodejs
?node.exe
?project1
?gulpfile.js
?project2
?gulpfile.js
Run Code Online (Sandbox Code Playgroud)
现在我想在项目目录中执行gulpfile:
set NODE_PATH='C:\workspace\cache\node_modules\'
cd C:\workspace\project1\
C:\workspace\nodejs\node.exe C:\workspace\cache\node_modules\gulp\bin\gulp.js watch
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
[12:06:04] Local gulp not found in C:\workspace\project1
[12:06:04] Try running: npm install gulp
Run Code Online (Sandbox Code Playgroud)
在两个项目文件夹中,gulpfile都是类似的,并使用了一组类似的插件.我真的希望只有一次依赖项(因为我可能有多达25个项目共享相同的node_modules).这种设置是否可行,或者单独的项目目录是否需要拥有自己的node_modules文件夹?
我有一个名为的小节点脚本/tmp/test.js包含:
console.log(require("w3cjs"));
Run Code Online (Sandbox Code Playgroud)
如果我从命令提示符执行此操作:
nvm use v0.10.21
node /tmp/test.js
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
module.js:340
throw err;
^
Error: Cannot find module 'w3cjs'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/tmp/test.js:1:75)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Run Code Online (Sandbox Code Playgroud)
但如果我这样做:
node -e $(cat /tmp/test.js)
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
{ validate: [Function: validate],
setW3cCheckUrl: [Function: setW3cCheckUrl],
w3cjs: [Circular] }
Run Code Online (Sandbox Code Playgroud)
(换句话说 - 它有效.)
为什么差异以及如何使脚本工作?
例如,我有以下结构
main
-- doTask1
-- task1-1.js
-- task1-2.js
-- doTask2
-- task2-1.js
-- task2-2.js
Run Code Online (Sandbox Code Playgroud)
如果我运行npm install <some package>中doTask1,一个新的目录node_modules中创建doTask1.
现在doTask2,我需要使用相同的包,我是否需要运行npm install <some package>在doTask2一次吗?这将创造另一个node_modules中doTask2是重复的.管理这个的正确方法是什么?