Articles of npm

如何在每个“npm install <package>”运行后运行安装后脚本

我正在维护以下目录结构: /home/user/Desktop/ |– app/ | |– package.json | `– server.js |– node/ | |– bin/ | | |– node | | `– npm | |– include/ | |– lib/ | `– share/ | `– npm.sh 我希望我的所有本地安装的节点模块驻留在目录node 。 也就是说,如果我在目录app运行npm install ,最初它会将模块安装在当前目录( app )中,然后将node_modules文件夹移动到名为node的外部目录。 为此,我写了一个脚本npm.sh ,并将mv (move)命令放在package.json的postinstall脚本中。 这些是npm.sh和package.json文件。 内容npm.sh : #/bin/bash export PATH=/home/user/Desktop/node/bin:$PATH export NODE_PATH=/home/user/Desktop/node/node_modules export NODE_MODULE_ROOT=/home/user/Desktop/node […]

错误TS5014:无法parsing文件'':位置0的JSON中的意外标记uterminal进程以退出码1终止

我收到这个错误。 error TS5014: Failed to parse file '/Users/Documents/tsconfig.json/tsconfig.json': Unexpected token u in JSON at position 0. The terminal process terminated with exit code: 1 我的系统设置: Visual Studio代码版本1.14.1 angular2 节点版本v8.0.0 tsc版本2.4.1 package.json如下 { "name": "angular-quickstart", "version": "1.0.0", "description": "QuickStart package.json from the documentation, supplemented with testing support", "scripts": { "start": "concurrently \"npm run tsc:w\" \"npm run […]

Heroku不更新node.js> package.json Github tarball依赖

我在Github上pipe理一个依赖项,我在项目中用它作为依赖项。 我把这个依赖作为一个tarball链接(即https://github.com/username/dependecy/tarball/master )放到了package.json中,并且在本地工作正常。 当我在Github上更新软件包时,我可以运行一个npm install ,包括Github tarballs在内的所有依赖项都会更新。 然而Heroku并非如此。 tarball链接的依赖不会被更新。 有任何想法吗?

代理返回HTML后面的NPM

我是NPM的新手,我想我已经设法使用这些设置来终止公司代理: proxy = http://MyUsername:MyPassword@MyProxy:MyPort https-proxy = http://MyUsername:MyPassword@MyProxy:MyPort strict-ssl = false registry = http://registry.npmjs.org/ 但是,当我运行一个NPM命令,如npm search或npm –proxy http://username:password@cacheaddress.com.br:80 install packagename ,我得到以下错误,我不明白: 0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\nodejs\\\\node.exe', 1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'search' ] 2 info using npm@1.4.3 3 info using node@v0.10.26 4 verbose […]

使用两个不同版本的相同节点依赖关系

有没有办法在nodejs package.json中包含相同的依赖关系的两个版本? 出于testing的目的,我需要使用两个版本的socket.io(一个用最新版本公开套接字,一个用旧版本来模拟依赖服务器)。 { "dependencies": { "socket.io": "~0.9.0", "socket.io": "~1.2.0" } }

避免mongodb批量插入重复键错误

我如何执行批量插入并继续在重复键错误的情况下? 我有一个唯一索引在id字段( 不是 _id )和一些数据的集合。 然后我得到更多的数据,我只想添加不存在的文件的集合。 我有以下代码: let opts = { continueOnError: true, // Neither ContinueOnError: true, // of keepGoing: true, // this KeepGoing: true, // works }; let bulk = collection.initializeUnorderedBulkOp( opts ); bulk.insert( d1 ); bulk.insert( d2 ); bulk.insert( d3 ); … bulk.insert( dN ); let result = yield bulk.execute( opts ); // […]

Heroku找不到当地的npm包

我有一个本地npm软件包包含在我的回购(我不包括整个node_modules到我的回购,由于其超过200mb的大小,只有具体的包,我不得不修改,以适应我的需要)。 在package.json ,本地包声明如下所示: dependencies : { local_package: "./my_local_package" … } 我得到的错误 npm ERR! enoent ENOENT: no such file or directory, open '/app/tmp/cache/my_local_package' 我不确定/app/tmp/cache是否是我的repo驻留的地方,如果不是,我应该更改它。 节点v4.2.1,npm v2.14.7

npm install:指定package.json?

如何在运行“npm install”时告诉npm使用另一个package.json? 我所需要的只是npm install -f packages-win32.json或者有一个技巧或者其他方法来实现? 因为不是所有的npm模块都是跨平台的,我想在每个平台上使用其他软件包。

npm 3.5.4:更新期间的EBUNDLEOVERRIDE导致npmlog错误

通过“brew升级”升级到Node 5.4.0,然后运行升级到npm 3.5.4的“npm update -g”。 npm更新完成警告: /usr/local/lib └── npm@3.5.4 npm WARN EBUNDLEOVERRIDE Replacing bundled npm > init-package-json with new installed version npm WARN EBUNDLEOVERRIDE Replacing bundled npm > node-gyp with new installed version npm WARN EBUNDLEOVERRIDE Replacing bundled npm > npm-install-checks with new installed version npm WARN EBUNDLEOVERRIDE Replacing bundled npm > npmlog with new […]

在节点模块内共享“全局”variables是一种很好的方法吗?

我怎样才能轻松地引用我的模块中的其他目录没有明确的相对path( ../../../lib.. )? 我正在编写一个节点模块,我想在模块中重用一些全局的东西。 最基本的 – 我想设置模块的根path为“全局”,所以我可以很容易地调用其他来源,而不使用大量的相对path../../和类似的东西。 这会导致代码混乱,如果项目结构发生变化,很容易出错或错过。 所以我在这篇 文章和其他一些库中看到了很多选项来处理这些事情(比如给出根path的模块 – app-module-path , rootpath , rfr等),但是他们都指向一个基础项目/应用程序,而不是其他人正在使用的模块。 设置全局是一个坏主意,我明白,一个环境variables也不是一个好主意。 对这件事情有一个好的做法吗? 也许有些事我没有find或听说过。 以下是我想要避免的以及我正在寻找的一个示例: // avoid things like that: // ./lib/something/forthat/doit.js var config = require('../../../config/project/type1/config.js'); // ./config/project/type1/config.js module.exports = { msg: 'hi' }; // find somethings like that: // when the root path/require can be found in every location […]