小编tak*_*ola的帖子

获取 __dirname 指向文件夹路径而不是符号链接文件夹的真实路径

使用 npm 链接时如何让 __dirname 指向文件夹的保留路径而不是符号链接文件的真实路径。

设想

文件夹设置

project
  |
  ---- moduleA
  |       |
  |       ---- moduleA.js
  |
  ---- app
       |
       --- node_modules
Run Code Online (Sandbox Code Playgroud)

project
  |
  ---- moduleA
  |       |
  |       ---- moduleA.js
  |
  ---- app
       |
       --- node_modules
Run Code Online (Sandbox Code Playgroud)

内部 moduleA.js

__dirname -> /project/moduleA
Run Code Online (Sandbox Code Playgroud)

然而,预期的行为是

__dirname -> /project/app/node_modules/moduleA
Run Code Online (Sandbox Code Playgroud)

由于 npm link 创建一个符号链接,将链接的模块插入到 node_modules 文件夹中,从而模拟直接安装模块的体验。

如何让 __dirname 指向保留的路径而不是模块所在的真实路径?

注意:--preserve-symlinks 命令行选项不会影响 __dirname 的值

javascript symlink node.js npm npm-link

8
推荐指数
0
解决办法
883
查看次数

检查javascript与Internet Explorer的兼容性

我有一些不能在IE 11中运行的JavaScript代码.是否有一种快速方法可以检查不兼容的位置,而不是逐行浏览代码以查看该版本的Internet Explorer支持哪些命令和语句?

javascript browser compatibility internet-explorer internet-explorer-11

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

动态调整Chrome扩展程序弹出窗口高度的大小

我正在构建一个chrome扩展,当单击扩展图标时,它会在弹出窗口中显示动态更新的HTML.我注意到弹出窗口的大小有时(大约每6次点击一次)太小,无法显示正在显示的文本.通常,高度会非常小(导致需要大量垂直滚动来查看弹出窗口的内容),但有时(大约15次点击一次),弹出窗口的宽度也会受到影响.

我已采取的故障排除步骤没有任何改进

  1. 声明 <!DOCTYPE html>
  2. 在CSS中指定

    body {width:700px,min-height:400px}

    包含内容的div的内容
    #htmlcontent {width:700px,min-height:400px}


3.使用javascript修改onload事件后的主体高度和宽度

window.onload = function(){
    var content = document.getElementById('htmlcontent');
    var height = content.scrollHeight + 20;
    document.body.style.minHeight = height + 'px';
    document.body.style.minWidth = "700px";
    window.scroll(0,0);
}
Run Code Online (Sandbox Code Playgroud)
  1. 使用iFrame不是一个实用的解决方案,因为显示的内容是机器的本地内容

  2. HTML树中没有隐藏元素



代码片段

popup.html

<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <script type="text/javascript" src="underscore.js"></script>
    <script type="text/javascript" src="popup.js"></script>
    <link rel="stylesheet" href="popup.css">
  </head>
  <body>
    <div class="container">
      <div class="banner">
        <img src="/icons/iconx19.png" width="19" height="19">
        <p>Title Text</p>
      </div>
      <div id="canvas">
        <!--content goes here -->
      </div>
    </div>  
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

popup.js

var popupText = …
Run Code Online (Sandbox Code Playgroud)

html javascript css google-chrome google-chrome-extension

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

为什么承诺在声明点执行?

我想使用 Promise.all() 执行一组承诺。我的方法是将这些承诺放在一个数组中,然后将数组传递给 Promise.all()。但是,我发现承诺一旦声明就开始执行,甚至不等待 Promise.all 被调用。

为什么会发生这种情况,我怎样才能让承诺只在调用 Promise.all() 时执行?

let promiseArray = [];
const values = [1, 2, 3, 4, 5];

values.forEach((value)=>{
  promiseArray.push(
    new Promise((resolve, reject)=>{
      console.log('value: ' + value);
      return resolve();
    })
  )
})


console.log('start')
Promise.all(promiseArray)

/*
 output is 

  value: 1
  value: 2
  value: 3
  value: 4
  value: 5
  start

 would have expected output to have been

  start
  value: 1
  value: 2
  value: 3
  value: 4
  value: 5
*/
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise es6-promise

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