我正在制作一个NPM包,我想知道如何注册多个入口点,以便用户可以选择引入整个库或只是它们打算使用的部分.
例如,引入整个库:
const mainLib = require('main-lib');
Run Code Online (Sandbox Code Playgroud)
或者只带一部分:
const subLib1 = require('sub-lib-1');
const subLib2 = require('sub-lib-2');
Run Code Online (Sandbox Code Playgroud)
我觉得让package.json的主要属性接受多个值似乎是直观的,但根据文档似乎并非如此.
有没有办法确认revmoveEventListener是否成功?我正在视频元素上使用它进行"播放"/"暂停"事件.我试图实现的行为似乎不一致.这是我如何使用它的一个例子.
var playListener = function(){
console.log("video is playing")
}
videoElement.addEventListener("playing", playListener)
Run Code Online (Sandbox Code Playgroud)
在我的代码中的其他地方
videoElement.removeEventListener("playing", playListener)
Run Code Online (Sandbox Code Playgroud)
playListener可用于我正在使用removeEventListener并且我传递视频元素的id所以它与我添加事件监听器的视频元素相同.
我想知道我是否可以使用某种console.log或确认removeEventListener工作的东西.
我正在阅读Kent C. Dodds关于构建开源库的教程.到目前为止,我已经使用npm来安装chai,commitizen,cz-conventional-changelog,mocha和unique-random-array.
我不确定什么时候,但我只是注意到我的node_modules文件变得非常大.node_modules文件夹的根目录中有大约100个文件夹.
我附上了一些node_modules的截图.
我记得在实现我的错误并快速退出命令之前,在没有全局标志的情况下运行npm install sementaic-release-cli一瞬间.这可能会安装所有这些模块吗?如果这是我的错误的结果,那么有什么办法可以解决它吗?
当我切换到目录时,我正在使用 direnv 来获取我的 virtualenv。
/project
.envrc
/env <--- my virtualenv
Run Code Online (Sandbox Code Playgroud)
.envrc
source env/bin/activate
Run Code Online (Sandbox Code Playgroud)
当我将目录更改为时,/project我得到输出:
direnv: loading .envrc
direnv: export +VIRTUAL_ENV -PS2 ~PATH
Run Code Online (Sandbox Code Playgroud)
它将 env 目录添加到我的 PATH 环境变量中,因此当我运行时which python,which pip它们都指向我env目录中的python 和 pip
=> which python
/USER/project/env/bin/python
=> which pip
/USER/project/env/bin/pip
Run Code Online (Sandbox Code Playgroud)
但是它似乎并没有source env/bin/activate像我期望的那样运行。我希望它通过将 virtualenv 名称 (env) 添加到我的 CLI 提示符并授予对deactivate命令的访问权限来激活我的 virtualenv ,这两种情况都不会发生。我对 direnv 和 virtualenv 的工作方式有什么误解吗?我是 python 的新手,所以我不确定是否有现有的工具来做这样的事情。
如果用户没有登录扩展程序,我正在实现一个附加到页面的通知,但我只希望扩展程序在每个浏览器会话中执行此操作,这样他们就不会为他们访问的每个页面收到烦人的通知他们没有登录.
我这样做的方法是将我的后台脚本中的布尔值初始化为false,它表示之前是否附加了通知.
每当用户未登录时,后台脚本将收到一条消息,并根据上面提到的布尔值通知用户他们没有登录.
background.js
var has_been_notified = false;
chrome.extension.onMessage.addListener(function(msg, sender) {
if(!has_been_notified) {
chrome.tabs.sendMessage(sender.tab.id, "login_notification");
has_been_notified = true;
}
})
Run Code Online (Sandbox Code Playgroud)
条件应该运行一次,并且一旦布尔值更改为true,就不会再次运行.这是假设后台脚本的状态在整个浏览器会话中保留,并且从未再次部署.
当我测试扩展时,即使在初始通知被触发后,一些随机页面也会收到通知.得到它的页面大约是十分之一,但我访问的网站完全是任意的.
我一直在使用shortcutfoo来收紧我的肌肉记忆,我遇到了一些我无法理解的命令,即使是他们的动画和解释.
这些是命令的解释:
我尝试在我的vim中使用这些命令,但它们似乎没有做任何明显的事情.