小编Coh*_*ars的帖子

Babel忽略几个目录

我目前正在用一个简单的命令运行Babel:

$ babel . --ignore node_modules --out-dir dist
Run Code Online (Sandbox Code Playgroud)

但我找不到忽略几个目录的方法(node_modules,test),我尝试了很多东西,包括(in .babelrc):

  "ignore": "node_modules"
  "ignore": "/node_modules/"
  "ignore": "node_modules/**"
  "ignore": ["node_modules"]
Run Code Online (Sandbox Code Playgroud)

这根本不起作用(node_modules被编译).有没有一种简单的方法来实现这一点(使用Babel 6)?

javascript babeljs

18
推荐指数
4
解决办法
2万
查看次数

Aurelia绑定:反复调用property-getter

我目前正在学习和使用Aurelia,并且发生了一些奇怪的事情(可能是正常的).

使用以下代码时

export class NavBar {
  get username() {
    console.log('o_o')
    return 'name' + Date.now()
  }
}
Run Code Online (Sandbox Code Playgroud)

在模板中${username},用户名总是每秒更新几次(当然,console.log也会多次记录).

解决方法是简单地使用函数而不是getter并${username()}在模板中调用.但这种行为是正常的吗?所以我有时候应该使用getter有时候不是吗?

谢谢!

javascript aurelia

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

模块导入和解构性能

我最近阅读了Material-UI的文档:

请注意,在上面的示例中,我们使用了:

import RaisedButton from 'material-ui/RaisedButton'

代替

import {RaisedButton} from 'material-ui'

这将使您的构建过程更快,并且您的构建输出更小.

我以前认为它完全相同,但实际上,这意味着第二行是像下面一样:

import materialUI from 'material-ui'
const {RaisedButton} = materialUI
Run Code Online (Sandbox Code Playgroud)

它会产生完全相同的束,对吗?

我做了一些测试,比较束大小使用不同的导入组合与2个文件:

index.js:

import RaisedButton from 'material-ui/RaisedButton'
// or import {RaisedButton} from 'material-ui'
import file from './otherFile.js'

console.log(RaisedButton)
console.log(file)
Run Code Online (Sandbox Code Playgroud)

otherFile.js

import RaisedButton from 'material-ui/RaisedButton'
// or import {RaisedButton} from 'material-ui'

export default RaisedButton
Run Code Online (Sandbox Code Playgroud)

结果非常符合预期,仅import RaisedButton from 'material-ui/RaisedButton'使用bundle就像24k LoC(material-ui加载React依赖项).使用import {RaisedButton} from 'material-ui',在一个或两个文件(S) ,捆绑将会像57K控制线.

我的问题主要是关于性能和最佳实践,少量使用Material-UI我应该总是导入from 'material-ui/ComponentName,但如果我在一个更大的项目上使用很多Material-UI组件,如果我使用它不会影响包大小import {Comp1, Comp2, Comp3} …

javascript performance module babel webpack

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

使用Jest测试Node.js API(和mockgoose)

这里有两个问题:

1)Jest是测试Node.js(express)API的好选择吗?

2)我正在尝试将Jest与Mockgoose一起使用,但我无法弄清楚如何建立连接并在之后运行测试.这是我在进入SO之前的最后一次尝试:

const Mongoose = require('mongoose').Mongoose
const mongoose = new Mongoose()
mongoose.Promise = require('bluebird')
const mockgoose = require('mockgoose')

const connectDB = (cb) => () => {
  return mockgoose(mongoose).then(() => {
    return mongoose.connect('mongodb://test/testingDB', err => {
      if (err) {
        console.log('err is', err)
        return process.exit()
      }
      return cb(() => {
        console.log('END') // this is logged
        mongoose.connection.close()
      })
    })
  })
}

describe('test api', connectDB((end) => {
  test('adds 1 + 2 to equal 3', () => {
    expect(1 + 2).toBe(3)
  }) …
Run Code Online (Sandbox Code Playgroud)

unit-testing mongoose node.js jestjs

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

应用转换:悬停不:活动

我不确定这是否可能,但这就是我所做的:

a {
    background-color: white;
    transition: all 1s;
}

a:hover {
    background-color: grey;
}

a:active {
    background-color: black;
}
Run Code Online (Sandbox Code Playgroud)

但我希望转换不适用于:active(仅在:hover上),我试过这个:

a {
    background-color: white;
}

a:hover {
    background-color: grey;
    transition: all 1s;
}

a:active {
    background-color: black;
}
Run Code Online (Sandbox Code Playgroud)

结果完全相同(除了效果没有反转).是否可以在完整的CSS中完成它.

谢谢!

css3 css-transitions

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

在jQuery中获取元标记内容

我想获取metaDetails是我的HTML页面的元内容.

$(pageDetails).find('meta[name="biz-id"]').attr("content")
Run Code Online (Sandbox Code Playgroud)

我的HTML代码是:

<meta name="biz-id" content="q6aDxTSK7njG7qWB1tSV5g">
Run Code Online (Sandbox Code Playgroud)

为什么我的返回值总是空的?

meta jquery

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

获取用户名socket.io,passport,koa

我正在使用Koa,Passport.js和koa-session对用户进行身份验证.所以它基本上看起来像:

// session
var session = require('koa-session');
app.keys = [config.secret];
app.use(session());


// auth
require(__dirname+'/lib/auth'); // de/serializeUser, strategies etc..
var passport = require('koa-passport');
app.use(passport.initialize());
app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)

这很好用.根据请求,我确实拥有req.user用户ID.但是当使用套接字时,我可以这样做:

io.on('connection', function(socket) {
  console.log(socket.request.headers.cookie),
});
Run Code Online (Sandbox Code Playgroud)

但是当然它只是加密的会话ID,我怎样才能反序列化用户并获得user.id就像我req.user在获取或发送请求时一样?

先感谢您.

javascript session node.js socket.io koa

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

基本Auth和JWT

我目前正在运行一个Node.js应用程序,其中包含API和文件服务(我知道nginx可以处理它,但我最初不应该使用它).

我只是用它来制作一个简单的基本身份验证,这恰好不是那么简单.

这是我的nginx配置:

  upstream nodejsapp {
    server 127.0.0.1:1337;
    keepalive 15;
  }

  server {
    listen 80 default_server;

    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    proxy_redirect off;

    location / {
      proxy_pass http://nodejsapp;

      proxy_set_header Connection "Keep-Alive";
      proxy_set_header Proxy-Connection "Keep-Alive";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
    }
  }
Run Code Online (Sandbox Code Playgroud)

/etc/nginx/.htpasswd文件是公正的user:encryptedpassword,也很好.

使用此配置,当我转到我的IP时:

  • 问我用户和密码
  • 开始加载页面
  • (有时)再次询问用户和密码
  • 完成加载页面

到目前为止这么好,即使它问了两次密码.

Node.js应用程序有一个JWT身份验证,当我登录时,网站重新加载,从这里,它无限期地询问用户和密码(基本身份验证),只要我点击登录.JWT在我的本地存储中.如果我在基本身份验证提示上单击取消,则JWT将被删除,我已注销,并且...再次询问基本身份验证.

这是在Chrome上.使用Firefox和Safari,在JWT日志记录之后,它会自动从本地存储中删除令牌(并且我已经注销).

这很难解释,我不能告诉你网站.简而言之,主要问题是删除了(node.js应用程序的)JWT.

authentication nginx basic-authentication node.js jwt

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

在终端的新选项卡中运行命令

我正在尝试编写一个可以在终端的多个选项卡中运行多个命令的脚本.我发现了很多关于它的信息,但它并不像我想要的那样工作.所以我可能需要AppleScript.

•此代码在新窗口中运行命令:

tell app "Terminal"
   do script "echo hello"
end tell
Run Code Online (Sandbox Code Playgroud)

•这一个打开一个新选项卡

tell application "Terminal"
  activate
  tell application "System Events"
    keystroke "t" using {command down}
  end tell
end tell
Run Code Online (Sandbox Code Playgroud)

但我没想出如何"混合"它们.任何的想法 ?

macos shell terminal command-line applescript

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

检查vue.js中是否存在值

我有数据:1,2,3,4,4,5&我的代码是这样的:

<div id="looping" v-for="display in editlistAssesments">
  {{display.test_id}}
</div>
Run Code Online (Sandbox Code Playgroud)

我的代码如果在php这样的

$temp_id = array();
foreach($data as $data){
  if(in_array($data ->test_id,$temp_id)){
    echo" 1: no";
    echo" 2: no";
    echo" 3: no";
    echo" 4: yes"; //because he have same value 
    echo" 5: no";
    $temp_id[] = $data ->test_id;
  }
}
Run Code Online (Sandbox Code Playgroud)

我如何在循环vueJs中做到这一点?

vue.js vue-resource

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