小编Eph*_*pox的帖子

npm多个入口点

我正在制作一个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的主要属性接受多个值似乎是直观的,但根据文档似乎并非如此.

javascript node.js npm

14
推荐指数
1
解决办法
5184
查看次数

我怎么知道removeEventListener成功了?

有没有办法确认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工作的东西.

javascript javascript-events

11
推荐指数
1
解决办法
2950
查看次数

node_modules有很多我不知道的文件

我正在阅读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一瞬间.这可能会安装所有这些模块吗?如果这是我的错误的结果,那么有什么办法可以解决它吗?

在此输入图像描述

在此输入图像描述

javascript node.js npm

2
推荐指数
1
解决办法
914
查看次数

使用 direnv 激活 virtualenv 不会激活 virtualenv

当我切换到目录时,我正在使用 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 pythonwhich 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 的新手,所以我不确定是否有现有的工具来做这样的事情。

python virtualenv direnv

2
推荐指数
2
解决办法
3883
查看次数

Chrome扩展程序后台页面状态

如果用户没有登录扩展程序,我正在实现一个附加到页面的通知,但我只希望扩展程序在每个浏览器会话中执行此操作,这样他们就不会为他们访问的每个页面收到烦人的通知他们没有登录.

我这样做的方法是将我的后台脚本中的布尔值初始化为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,就不会再次运行.这是假设后台脚本的状态在整个浏览器会话中保留,并且从未再次部署.

当我测试扩展时,即使在初始通知被触发后,一些随机页面也会收到通知.得到它的页面大约是十分之一,但我访问的网站完全是任意的.

google-chrome google-chrome-extension

1
推荐指数
1
解决办法
628
查看次数

vim fw,Fw,tw,Tw,and; 在命令模式下

我一直在使用shortcutfoo来收紧我的肌肉记忆,我遇到了一些我无法理解的命令,即使是他们的动画和解释.

这些是命令的解释:

  • fw | 在线移动到下一个'w'
  • Fw | 在线移至上一个'w'
  • tw | 在下一个"w"之前移动
  • Tw | 在前一行'w'之前移动
  • ; | 重复上一个f,F,t或T.

我尝试在我的vim中使用这些命令,但它们似乎没有做任何明显的事情.

vi vim

1
推荐指数
1
解决办法
173
查看次数