使用 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 的值
我有一些不能在IE 11中运行的JavaScript代码.是否有一种快速方法可以检查不兼容的位置,而不是逐行浏览代码以查看该版本的Internet Explorer支持哪些命令和语句?
javascript browser compatibility internet-explorer internet-explorer-11
我正在构建一个chrome扩展,当单击扩展图标时,它会在弹出窗口中显示动态更新的HTML.我注意到弹出窗口的大小有时(大约每6次点击一次)太小,无法显示正在显示的文本.通常,高度会非常小(导致需要大量垂直滚动来查看弹出窗口的内容),但有时(大约15次点击一次),弹出窗口的宽度也会受到影响.
我已采取的故障排除步骤没有任何改进
<!DOCTYPE html>在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)
使用iFrame不是一个实用的解决方案,因为显示的内容是机器的本地内容
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) 我想使用 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 ×4
node.js ×2
browser ×1
css ×1
es6-promise ×1
html ×1
npm ×1
npm-link ×1
promise ×1
symlink ×1