Articles of npm

NPM模块 – 如何利用package.json文件?

我正在为基于cli的工具编写一个NPM模块。 有人安装包后,我需要阅读他们的package.json文件。 我知道如何在语法中读取文件。 我的问题是,我如何一致地检索package.json文件,我应该使用相对或绝对path。 所以,安装后,我的代码将驻留在node_modules文件夹内的某个node_modules : package.json // I need to require this file node_modules/ ↳ my-package/ ↳ dist/ ↳ my-package.js // the actual file running the code 任何build议/最佳实践? 还是只是使用正确的文件path的问题?

我应该硬编码引用到我的node_modules文件夹?

我创build一个名为ctgen的npm包,我需要引用该包内的文件夹。 我应该硬编码的文件夹的引用? 例如src = './node_modules/ctgen/scaffold' 还是有一个预制的function,将为我做这个? 在我的问题上更清晰一点。 我的包中有以下function: var createFile = function (fileName, componentName, doc) { // Tell the user what is happening console.log(chalk.blue('\nCreating', fileName, '…')) // Bring in the scaffold files (note this should point to the scaffold folder in node modules/ctgen) var scaffold = './scaffold/' + fileName fs.readFile(scaffold, 'utf8', function (err, data) { […]

有没有办法强制npm安装从Intranet位置的所有依赖项

假设我的内部网中有一个目录,其中包含一个node_modules文件夹,其中包含所有依赖关系,这是我的Web项目工作所需要的。 据我所知,我可以input类似的东西(在我的项目的根文件夹在terminal): npm i "\\RepoComp\Repo\node_modules\bootstrap" 所以,它会将bootstrap包安装到我的项目中。 这是相当不错的,但我不想安装我的package.json手动列出的所有包,我只想input: npm i <path-to-intranet-repo> 我期望npm从这个内联网位置收集所有的依赖关系。 我怎样才能做到这一点? PS:其实,我试图实现的是将所有的依赖关系放在内部networking的远程文件夹中,所以我的团队中的所有开发人员都可以从那里访问所需的软件包,而无需连接互联网。 可能吗? 但是,正如我从npm-debug.log中发现的,它试图连接到registry.npmjs.org,同时试图通过npm –prefix "\\RepoComp\Repo\node_modules\" install命令来安装软件包。

我可以复制“node_modules”目录到其他机器,而不必每次都运行“npm install”吗?

两台Linux机器。 两者都是CentOS x64,但版本不同。 假设我在机器#1上运行npm install ,将包括node_modules目录在内的整个应用程序复制到机器#2并在那里运行。 是否支持? 或者,总是build议在每台机器上运行npm install ? 我成功地在Centos 6 x64机器上执行npm install ,将包括node_modules的应用程序复制到Centos 7 x64机器上。 应用程序似乎运行良好。 即使它对我有用,这样做通常是安全的吗?

你应该发布你的stream式文件夹到NPM吗?

我想知道是否和在什么条件下,你应该发布你的包flow-typed文件夹NPM。 也许(和我一直在想的)答案从来没有,应用程序开发人员自己使用streamtypes,但flow-typed install可能只是为自己声明的依赖关系提供定义,而不是包内的依赖关系。 所以简而言之,如果你的软件包有非对等streamtypes的依赖关系,我应该发布我的flow-typed文件夹,或者我应该npmignore它?

无法在Gulp下运行项目

我是前端开发新手,我有一些现有的项目,我无法运行。 文档说,要运行我应该执行的项目: $ gulp && gulp serve 但是,我收到以下错误: /home/alex/some/project/node_modules/@types/gulp/index.d.ts(15,15): error TS2430: Interface 'Gulp' incorrectly extends interface 'Orchestrator'. Types of property 'task' are incompatible. Type 'AddMethod' is not assignable to type '{ (name: string): Task; (name: string, fn: TaskFunc): void; (name: string, dep: string[], fn: Tas…'. Type 'Orchestrator' is not assignable to type 'Task'. Property 'fn' […]

SCRIPT5009:'fetch'是未定义的

有一些麻烦! 对于我的请求,我正在使用Fetch API! 提交表单在IE中不工作,因为“SCRIPT5009:'取'未定义”! 示例如何: fetch("url", { method: "POST", body: JSON.stringify(data), headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' } }).then(function (response) { return response.json().then(function (data) 同时在Chrome和FF,它的工作正常! 我已经试图find一些冲浪谷歌的解决scheme,但这是无益的! 我尝试在npm中安装“isomorphic-fetch”和“es6-promise”,并试图将其导入到我的.js文件中,但也不成功,控制台显示了我这样的内容:“Uncaught SyntaxError:Unexpected token import” ! 顺便说一句,必需()函数不工作以及! 所以我完全不用做什么,如何使用这些polyfill的东西,所有这一切! 如果有人有一个想法,提前致谢! BR!

节点命令行工具不在vagrant上编译

我在Windows 10上使用Vagrant。使用npm install (或npm install –no-bin-links ,因为我在Windows上的Vagrant)安装所有的依赖关系后,./ ./node_modules/.bin是空的。 我期望find一些命令行工具。 在我的情况下,这是svg2png-many是缺less的。 我也尝试用npm rebuild svg2png-many ,但是这并没有创build丢失的文件。 注:我没有得到任何错误运行npm install ,只是该文件不存在: ./svg2png.sh:第8行:./node_modules/.bin/svg2png-many:没有这样的文件或目录 这是在那个文件中 for t in "${themes[@]}" do echo "dist/img/${t}/" ./node_modules/.bin/svg2png-many -i "dist/img/${t}/" "dist/img/${t}/" done 接下来我应该尝试什么?

节点8.0安装,但npm坚持旧版本

它在Windows 10上安装了节点版本v8。它说它是用npm 5交付的….但是它被卡在3.5.3上 λnpm i -g npm npm ERR! Windows_NT 10.0.14393 npm ERR! argv“npm”“i”“-g”“npm” npm ERR! 节点v8.0.0 npm ERR! npm v3.5.3 npm ERR! 代码MODULE_NOT_FOUND npm ERR! 找不到模块'internal / fs'npm ERR! npm ERR! 如果您需要帮助,您可以在以下url报告此错误:npm ERR! https://github.com/npm/npm/issues npm ERR! 请包括以下文件与任何支持请求:npm ERR! C:\用户\用户\ NPM-的debug.log 我做了什么: 卸载节点并重新安装 安装不同版本的节点(7.7.0)并查看是否更新了npm 使用npm clean cache -f 而这些都没有工作…所以有什么想法?

当为一个npm模块使用一个私有的git url时,如何configuration消费应用程序只使用模块的dist文件夹中的文件?

我为我的angular应用程序使用angular-cli,但由于angular-cli目前不支持用于创build库,我使用了看似最广泛使用的git项目来创build我的库: https : //github.com/jvandemo/发电机angular2库 我的问题是,我不想将我的npm模块库发布到公共目录。 相反,我想直接在我的依赖中使用git url。 在开发过程中,这工作正常。 我可以在本地运行构build并在“dist”文件夹内运行一个npm链接,并且所有内容都是漂亮的。 然而,当我把我的npm模块代码git,然后在消费项目中运行一个npm安装,我不知道如何设置它,以便我的消费项目只是看在模块的dist文件夹内,并将其视为如果这是模块的根源。 例如,在node_modules / my_private_module中,我的文件结构如下所示: dist/ — component1 — compoennt2 — my_module.metadata.json — my_module.d.ts — my_module.umd.js — index.d.ts — index.js — package.json — README.MD package.json README.md 我的应用程序使用的所有文件都在/ dist文件夹中,但我不想在所有的导入中指定“dist”,如 import { myComponent1 } from 'my_private_module/dist'; 我想能够只是指定 import { myComponent } from 'my_private_module"; 正如我在开发时,在dist文件夹中运行一个npm链接。 有什么办法可以做到这一点? 谢谢