草庐IT

javascript - 同时测试两个不同的 npm 包版本

当我创建一个npm包时,有时它会面临需要倒退旧的依赖包版本。如果新版本有新的api,我可能会这样写代码:importpkgfrom'some-pkg';constisNewVersion=pkg.newVersionApi!=='undefined';if(isNewversion){pkg.newVersionApi();}else{pkg.oldVersionApi();//backwardcompatibleapi}并且使用这种模式,当我想编写测试时,我只能测试已安装版本代码。无法测试其他版本的代码。举个真实的例子,在Reactv15和v16中,Reactv16有新的APIPor

javascript - npm 安装了很多依赖

我最近买了一个HTML模板,它包含许多放在bower_components目录下的插件和一个package.js文件。我想安装另一个我喜欢的包,但决定为此目的使用npm。当我输入时:npc安装pnotifynode_modules已创建,其中包含约900个目录和其他包。那些是什么?为什么它们与我的包一起安装?我做了一些研究,结果发现这些是必需的,但实际上,我是否需要在生产中使用数百个不必要的包来交付我的模板? 最佳答案 这是一个很好的问题,有几点我想指出。V8引擎、Node模块(依赖项)和requireing它们Node.JS建立在

javascript - vue webpack 模板(通过 vue-cli)以后会变得更容易使用吗?

背景开始一个新的vue.js(2.0)项目。我在其他项目(vuejs-templates/webpack)中使用过vue-cli,发现在进行任何类型的更改时都很难掌握构建过程。最重要的是,webpack因缺乏文档而臭名昭著,因此即使对构建过程进行微小的调整也需要大量工作。总的来说,我相信我同时了解webpack和vue-loader。不过,我仍然很难全面了解vuejs-templates/webpack。问题我正在考虑为这个应用程序滚动我自己的webpack配置,但我担心我最终会得到一个与当前vuejs-templates/webpack一样大的构建过程。我的计划是从vuejs-tem

javascript - 如何使用angular cli升级次要版本的angular

这是一个简单的问题,但我很难通过Google找到答案...我有一个Angular4项目(使用AngularCLI创建)并且想使用刚刚在4.3中发布的http拦截器。如何使用AngularCLI升级到这个次要版本? 最佳答案 主要版本的Angular更新应该通过ngupdate完成。用于更新Angular次要/补丁版本的npmupdate有一个缺点:它还会更新其他不相关的包。您可以使用npm-check-updates仅更新特定包,您可以选择针对补丁/次要/主要版本。此命令将更新所有Angular包次要(和补丁)版本(但它会保留主要版

javascript - npm 关于回调错误的指南

我正在通读npm’scodingstyleguidelines并遇到了以下非常神秘的建议:Beverycarefulnevertoevereverthrowanything.It’sworsethanuseless.Justsendtheerrormessagebackasthefirstargumenttothecallback.它们到底是什么意思,如何实现这一行为?他们是否建议在自身内部调用回调函数?以下是我使用异步fs.readdir时的想法方法。fs.readdir('./',functioncallback(err,files){if(err){//throwerr//npm

javascript - 跳过 "npm version"命令中的预提交 Hook

npmversion将更改提交到package.json并创建一个标签。有没有办法防止在使用此命令时执行提交Hook? 最佳答案 不知道为什么这个功能以前在npm中不存在,但我不久前贡献了它,因为我自己需要它。它随npm@5.4.0一起发布。要使用它,请在您的.npmrc中设置配置选项commit-hooks=false并且底层的git调用将不会在创建时运行提交Hook版本提交。如果您只想在单个版本控制上禁用提交Hook,您可以运行类似于:npmversion--no-commit-hooksminor或者:npmversion--

javascript - 使用 Vue-cli,我在哪里声明我的全局变量?

在大多数Vue.js教程中,我看到类似的内容newVue({store,//injectstoretoallchildrenel:'#app',render:h=>h(App)})但是我正在使用vue-cli(我实际上正在使用quasar)并且它为我声明了Vue实例,所以我不知道我应该在哪里说我想要store成为“Vue-wide”全局变量。我在哪里指定?谢谢 最佳答案 是的,您可以在入口点文件(main.js)中像这样设置这些变量:Vue.store=Vue.prototype.store='THISISSTOREVARIABLE

javascript - 带有 npm 的客户端 Prism.js

我正在尝试使用Prism.js语法高亮客户端作为npm依赖项,而不是从加载它标签。这是package.json中的Prism引用{"dependencies":{"prismjs":"^1.5.1"}}以及我尝试在我的代码中使用它的方式importPrismfrom'prismjs'Prism.highlightAll();这会产生以下结果:标记化适用​​于基本语言(html、javascript...)分词不适用于其他特定语言(lua、handlebars...)对于所有语言,不应用语法着色(css文件似乎没有加载)所以我想知道是否有其他特定于语言的包(例如prismjs-handl

javascript - 通过 npm 安装 d3.js 对 Angular 2 TypeScript 项目有什么好处吗?

TL;DR:d3.js应该通过npm安装,输入也应该如此。接受的答案有详细信息。当我写这个问题时,我是Angular的新手。npm流程是标准流程:用于tree-shaking、包管理、更新等我有一个Angular2项目(为简单起见,它是快速启动项目),我正在导入d3.js版本4。d3没有TypeScript定义,因为它只是javascript。在index.html中,我添加了库:在typescriptapp.component.ts中,我引用了d3.select()....它工作正常-画了一个圆圈:d3.select("body").append("svg").attr("width

javascript - 如何在 javascript 中使用 npm 脚本

我需要一个完整的指南或一个很好的引用资料来解决在javascript文件中运行模块命令的问题。说我经常运行:$npmrunwebpack-dev-server--progress--colors--files我如何在javascript文件中运行它并执行$node./script.jsscript.jsvarwebpackDevServer=require('webpack-dev-server');//needhelpherevarresult=webpackDevServer.execute({progress:true,colors:true,},files);