小编vrd*_*rde的帖子

使用RequireJS 2.0.1和shim加载jQuery,Underscore和Backbone

我正在尝试使用RequireJS 2.0.1.我的目标是正确加载jQuery,Underscore和Backbone.从最初的RequireJS文档中我发现作者J. Burke(在这个新版本中)添加了一个名为shim新配置选项.

然后我在这里写下这些东西:

index.html

<!DOCTYPE html>
<html>
    <head>
        <title>Testing time</title>
        <script data-main="scripts/main" src="scripts/require.js"></script>
    </head>
    <body>
        <h1>Testing time</h1>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

scripts/main.js

requirejs.config({
    shim: {
        'libs/jquery': {
            exports: '$'
        },
        'libs/underscore': {
            exports: '_'
        },
        'libs/backbone': {
            deps: ['libs/underscore', 'libs/jquery'],
            exports: 'Backbone'
        }
    }
});


define(
    ['libs/jquery', 'libs/underscore', 'libs/backbone'],

    function (jQueryLocal, underscoreLocal, backboneLocal) {
        console.log('local', jQueryLocal);
        console.log('local', underscoreLocal);
        console.log('local', backboneLocal);
        console.log('global', $);
        console.log('global', _);
        console.log('global', Backbone);
    }
);
Run Code Online (Sandbox Code Playgroud)

一切似乎工作得很好,但我觉得我缺少一些东西,我知道有jedUnderscore的AMD版本,但如果设置如此简单,我不明白为什么我应该使用它们.

那么,这个设置是正确的还是我错过了什么?

javascript shim requirejs

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

宏定义和函数定义之间的区别

我正在尝试学习Lisp,但是我被这个例子困住了(你可以在"ANSI Common Lisp"上找到它,Paul Graham,第170页):

(defmacro in (obj &rest choices)
    (let ((insym (gensym)))
        `(let ((,insym ,obj))
             (or ,@(mapcar #'(lambda (c) `(eql ,insym ,c))
                           choices)))))
Run Code Online (Sandbox Code Playgroud)

格雷厄姆然后说:

如果第一个参数的第一个参数是任何其他参数,则in返回第二个宏[...] .我们可以写成的表达式:trueeql

(in (car expr) '+ '- '*)
Run Code Online (Sandbox Code Playgroud)

否则我们不得不写作

(let ((op (car expr)))
    (or (eql op '+)
        (eql op '-)
        (eql op '*)))
Run Code Online (Sandbox Code Playgroud)

当我写的下面的函数看起来行为方式相同时,为什么我应该写一个宏?

(defun in-func (obj &rest choices)
    (dolist (x choices)
        (if (eql obj x)
            (return t))))
Run Code Online (Sandbox Code Playgroud)

我不明白我是否遗漏了某些东西,或者在这种情况下,in-func相当于in.

lisp macros function common-lisp

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

使用Haskell进行Web开发有哪些主要好处?

我学习Haskell 伟大的好.

我很喜欢OOP和各种类型的系统.我用Java开发webapps(Java EE,spring,Hibernate,struts 1.x),现在我经常使用Python(pylons,django,sqlalchemy,pymongo)和Javascript.我的个人生产力有了很大的提高:轻量级方法,鸭子打字,很棒的迭代器,作为一等公民的功能,简单的语法和配置,快速工具pipdistribute(以及更多)帮助了我很多.

但是提高生产力的第一个原因是Python语言本身.

使用Haskell进行Web开发有哪些主要好处?例如,它的类型推断如何真正改善我的网络应用程序?到目前为止,我注意到当你用你的类型签名装饰你的函数时,你会为你的程序添加很多语义.我希望所有这些努力都能以某种方式回归,以保存许多行代码并使其发声.我真的很喜欢类型和数据之间的明显区别,我开始明白它们是如何工作的,但我想要一些东西:P

不要误会我的意思,我刚刚开始研究Haskell,所以Maybe我错过了一些真棒,但我真的想要了解它的范例以及它何时值得使用它.

haskell

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

监控芹菜,我该怎么用?

我正在使用Django,Celery和Django-Celery.我想监控我的任务的状态/结果,但我对如何做到这一点感到有些困惑.

我用./manage.py celeryev,./manage.py celerymon,./manage.py celerycam?我跑sudo /etc/init.d/celeryevcam start吗?

python django monitoring celery

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

需要缓冲区的模块在成功编译后无法工作

我试图用base58是进口的buffer。我已经安装了两个:

并将它们添加到插件列表中,但缓冲区似乎未定义。老实说,我不完全确定我在这里做什么,使用这两个废弃的包似乎比预期的要复杂。

如果需要,我可以提供一个示例,但也许这很简单,已经有一个简单的答案。

rollup.config.js的如下(我删除了一些不重要的部分):

import alias from "@rollup/plugin-alias";
import copy from "rollup-plugin-copy";
import json from "rollup-plugin-json";
import globals from "rollup-plugin-node-globals";
import builtins from "rollup-plugin-node-builtins";
import svelte from "rollup-plugin-svelte";
import resolve from "rollup-plugin-node-resolve";
import replace from "@rollup/plugin-replace";
import commonjs from "rollup-plugin-commonjs";
import livereload from "rollup-plugin-livereload";
import { terser } from "rollup-plugin-terser";

// ...

export default [
  {
    input: "src/background/",
    output: {
      sourcemap: true,
      format: "iife",
      name: "background",
      file: "build/background/bundle.js"
    },
    plugins: [
      builtins(), …
Run Code Online (Sandbox Code Playgroud)

commonjs rollupjs svelte

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

获取 Django 模板的源代码

我需要获取模板的来源。我查看了模板 API源代码,但没有成功。

显然,模板对象不保留对原始源的引用。

在搞乱我的代码库之前,我要问:有没有一种简单的方法来获取模板的源代码?

python django django-templates

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

lambda函数的内存地址

我在Python 2和3中注意到了这种行为:

>>> id(lambda: 1) == id(lambda: 2)
True
Run Code Online (Sandbox Code Playgroud)

它们也共享相同的哈希值.

>>> hash(lambda: 1) == hash(lambda: 2)
True
Run Code Online (Sandbox Code Playgroud)

我期望两个lambda函数有两个不同的 id s和hashes.

我调查了更多,并在返回闭包时发现了类似的行为:

>>> def foo(n):
...     def bar():
...         return n
...     return bar
... 
>>> id(foo(1)) == id(foo(2))
True
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我认为它id是相同的,因为返回的函数完全相同,而正在改变的只是封闭范围.

有什么类似的lambda功能发生?

python lambda closures

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