Tag: node modules

使用自我维护的NPM模块部署节点应用程序

我正在开发一个非常复杂的应用程序,使用内部开发的开源NPM模块。 为了使主应用程序正常工作,我经常需要更改其中一个模块(额外function,bug修复等)。 目前,我有: 一个名为my_modules的目录,每个目录都包含一个用于每个模块的git存储库。 例如module1 , module2 。 一个名为my_apps的目录,其中例如有app1 ,其中有module1作为依赖项 在my_apps/app1/node_modules我有通过NPM安装的my_apps/app1/node_modules和module2 在服务器中,通过拉动git存储库,运行npm install和npm dedupe ,并永久运行服务器进行部署。 在这个阶段,如果我不得不在某个模块中修复某些东西,我: 修复它在my_apps/app1/node_modules/module1 (而不是git) 当这一切都工作,复制文件到my_modules/module1 ,做一个git push和npm publish 由于npm install ,服务器将在部署之后提取最新的模块 这是方式,不太理想。 这太容易出错了。 然而: 有一个符号链接链接my_apps/app1/node_modules/module1 => my_modules/module1意味着module1将在自己的path中寻找依赖关系,这往往会导致问题(例如,我需要确保每个模块使用相同的副本module1 ,这是势在必行的) 在my_apps/app1/node_modules/module1下有一个git repo感觉很危险,以防在模块上意外地覆盖使用NPM的更改。 另外,一旦修正了本地git仓库中的变更,我仍然需要在my_modules/module1 。 是从复制文件转移到… 什么是“build议”的方式来处理这个? 任何最佳实践?

使用`yarn add`安装的NPM依赖关系在`package.json`中有`+ deprecated`后缀

我正在考虑完全迁移到纱线,但我想我不完全理解它是如何工作的。 为什么会发生这种情况的具体原因? 我试着用yarn add phantomjs –dev –exact但是我的package.json上的列表说: "devDependencies": { "phantomjs": "2.1.7+deprecated" } 这个+deprecated后缀是什么意思? 这将继续与npm install正常npm install在未来的工作?

NodeJs使用PHP和EJS作为模板引擎,我如何传递和访问数据从路由到模板?

任何人都可以帮助我在访问模板中的数据? 以下是server.js(主节点Module)的代码: var engine = require( 'express-ejs-layouts'); app.get('/', router); app.engine('ejs', engine); app.set('view engine', 'ejs'); app.engine('php', phpnode); app.set('view engine', 'php'); routes.js //Initialize views router.get('/', function(req, res){ res.render('index', {data : 'jobDataVal'}); }) index.php(模板文件) <!DOCTYPE html> <html> <head> <title></title> <?php include_once('header_scripts.php'); ?> </head> <body> <?php echo $data; ?> <%= data %> <?php include_once('footer_scripts.php');?> </body> </html> 我正在尝试从模板中的路由访问数据variables,但该值不可访问。

在docker中保持node_modules最新

我正在与一个在Docker和Node中构build的回购团队合作。 当别人安装节点包时,我git pull这些改变git pull package.json和package-lock.json 。 不过,我不能只运行docker-compose build ,然后docker-compose up来安装这些新的节点包。 我不得不第一个docker-compose down -v 。 这是因为我们正在使用卷来存储节点模块。 我们并不拘束于此,坦率地说,只是将模块存储在docker图像层中。 但是,当我们绑定应用程序的体积( docker-compose.yml – .:/app )时,图像中的node_modules文件夹会被映射。 这感觉就像我们采取了错误的做法,但这似乎是普遍接受的做法。 我们的设置基于“ 在Docker中构build节点应用程序的教训 ” 我们的Dockerfile : FROM node:8.4.0 WORKDIR /app COPY package.json package-lock.json ./ RUN npm install –loglevel=error –progess=false COPY . /app/ 我们docker-compose.yml : — version: '2.1' services: main: build: context: . volumes: – […]

如何根据具有相对位置的共享库构buildnodejs C ++插件

我正在尝试使用node-gyp构buildnode.js C ++,但无法弄清楚如何指定-Wl,-rpath,$ORIGIN以便在从节点加载时可以find相同的共享对象库目录作为addon.node 。 我已经尝试设置我的binding.gyp像这样: "libraries": [ "-L../../install_release_x64/", "-llibppp" ], "ldflags": [ "-Wl,-rpath,'$ORIGIN'" ], "cflags_cc": [ "-fexceptions", "-fPIC", "-Wno-unknown-pragmas" ] 但是当我运行$ readelf -d addon.node的结果是这样的: Dynamic section at offset 0x7d10 contains 29 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [liblibppp.so] 0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] […]

减less用于生产的node_modules的大小

我创build了node_modules,用于在ngrok的帮助下从本地主机上载addon到在线网站,并在CommandPrompt中使用npm install 。 但创build的node_modules文件夹大小为78mb。 在这种情况下,我必须通过删除不需要的文件夹来缩小文件大小,所以我在网上冲浪,并得到了两个build议,因为减小文件大小可能是有效的,它们是:使用– 生产模式 ,另一种使用收缩包装 。 作为第一步,我使用命令npm install –production和npm install –only = production(如下所示): 如何防止为Node.js(package.json)安装“devDependencies”NPM模块? ,但我没有看到文件夹大小的任何变化。 然后介绍如何使用shrinkwrap缩小本网站给出的尺寸,并尝试使用: https : //docs.npmjs.com/cli/shrinkwrap ,但没有成功。 另外我在这里提到: https : //www.npmjs.com/package/modclean ,使用命令modclean -n默认:安全我得到了10-11mb减less。 但是,我仍然在node_modules中有大量不需要的文件夹。 我已经在package.json中指定了一些需要的依赖项,如下所示, "dependencies": { "atlassian-connect-express": "2.0.0", "body-parser": "^1.14.2", "compression": "^1.6.0", "cookie-parser": "^1.4.0", "errorhandler": "^1.4.2", "express": "^4.13.3", "express-hbs": "*", "jugglingdb-sqlite3": "0.0.5", "morgan": "^1.6.1", "static-expiry": ">=0.0.5" } 我在package.json中给出的依赖很less,但我看到在node_modules中创build了大量文件夹。 我怎样才能减lessnode_modules的大小,还有其他的进程吗?

如何更改package.json输出位置

是否有一个package.json选项来指定node_modules目录的相对位置? 对于我的应用程序,我有一个如下所示的目录结构。 当前目录结构 root/ —/client ——-/(client code) —/server ——/package.json* (sibling of node_modules) ——/node_modules* ——/server.js 我想将grunt任务添加到项目的根目录(因为它们将应用于客户端代码和服务器代码)。 Gruntfile.js需要是package.json的兄弟 。 我想将package.json移到根目录,但是我也想把node_modules保存在服务器目录下。 在package.json中有一个选项来做到这一点吗? 我想要得到的目录结构如下所示。 首选目录结构 root/ —/package.json* (not a sibling of node_modules) —/Gruntfile.js —/client ——-/(client code) —/server ——/node_modules* 像下面这样的选项是最受欢迎的(在npm文档中似乎没有这样的选项) 假设的package.json { "output_dir": "server/node_modules", // Something like this "dependencies": { … }, "devDependencies": { … } }

docker-compose不能从npm中看到node_modules

我想我不是第一个有这个问题的人,但是我没有看到对我有用的东西。 docker-compose.yml文件 web: build: . volumes: – .:/src ports: – "3000:3000" Dockerfile FROM node:0.12 RUN npm install -g mocha RUN mkdir /src WORKDIR /src ADD package.json /src/package.json RUN npm install COPY . /src EXPOSE 3000 CMD node server.js Aand成功构build后通过docker-compose up运行,我有和错误: web_1 | Error: Cannot find module 'express' web_1 | at Function.Module._resolveFilename (module.js:336:15) web_1 | at […]

用哟生成器创buildmeanjs项目时出错

我是初学者意味着js,我从这里为meanjs做了设置。 我已经使用下面的命令来创build一个问题回答的meanjs项目。 santosh@santosh:~/Documents/Projects$ yo meanjs Native thread-sleep not available. This will result in much slower performance, but it will still work. You should re-install spawn-sync or upgrade to the lastest version of node if possible. Check /usr/local/lib/node_modules/yo/node_modules/yeoman-environment/node_modules/inquirer/node_modules/external-editor/node_modules/spawn-sync/error.log for more details Native thread-sleep not available. This will result in much slower performance, but it will still […]

NPM如何处理版本冲突?

由于NPM第3版节点模块和依赖关系都安装在同一根级别。 但是如果我安装两个依赖于相同模块的两个不同版本的模块呢? 例如,如果我安装asynchronousnpm i async@2.1.4 ,这需要lodash版本4.14.0 ,然后我安装yeoman npm i yo@1.8.5 ,这需要lodash版本3.2.0 ,npm如何解决这个冲突?