标签: amd

CommonJS,AMD和RequireJS之间的关系?

我对CommonJS,AMD和RequireJS仍感到非常困惑.即使阅读了很多.

我知道CommonJS(以前称为ServerJS)是一个用于在浏览器外部使用语言时定义一些JavaScript规范(即模块)的组.CommonJS模块规范有一些像Node.js或RingoJS的实现,对吧?

CommonJS,异步模块定义(AMD)和RequireJS之间有什么关系?RequireJS是CommonJS模块定义的实现吗?如果是的话,那么什么是AMD呢?

javascript module amd commonjs requirejs

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

管理webpack中的jQuery插件依赖项

我在我的应用程序中使用Webpack,在其中我创建了两个入口点 - 所有JavaScript文件/代码的bundle.js,以及jQuery和React等所有库的vendors.js.我怎么做才能使用jQuery作为依赖项的插件,我想在vendors.js中也有它们?如果这些插件有多个依赖项怎么办?

目前我正在尝试使用这个jQuery插件 - https://github.com/mbklein/jquery-elastic.Webpack文档提到了applyPlugin和imports-loader.我使用了providePlugin,但仍然没有jQuery对象.以下是我的webpack.config.js的样子 -

var webpack = require('webpack');
var bower_dir = __dirname + '/bower_components';
var node_dir = __dirname + '/node_modules';
var lib_dir = __dirname + '/public/js/libs';

var config = {
    addVendor: function (name, path) {
        this.resolve.alias[name] = path;
        this.module.noParse.push(new RegExp(path));
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: "jquery",
            jquery: "jQuery",
            "window.jQuery": "jquery"
        }),
        new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js', Infinity)
    ],
    entry: {
        app: ['./public/js/main.js'],
        vendors: ['react','jquery']
    },
    resolve: {
        alias: {
            'jquery': node_dir + '/jquery/dist/jquery.js',
            'jquery.elastic': lib_dir …
Run Code Online (Sandbox Code Playgroud)

javascript jquery amd webpack

423
推荐指数
8
解决办法
28万
查看次数

如何禁用警告'define'未使用JSHint和RequireJS定义

我在我的项目中使用RequireJS AMD.当我在我的项目上运行jshint时,它会抛出错误

在AMD Scripts中

 'define' is not defined.
Run Code Online (Sandbox Code Playgroud)

在摩卡测试案例中

 'describe' is not defined.
 'it' is not defined.
Run Code Online (Sandbox Code Playgroud)

如何在jshint中删除此警告?

javascript amd requirejs jshint

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

要求使用shim配置的原因和时间

我从这里读apirequirejs文件

requirejs.config({
    shim: {
        'backbone': {
            //These script dependencies should be loaded before loading
            //backbone.js
            deps: ['underscore', 'jquery'],
            //Once loaded, use the global 'Backbone' as the
            //module value.
            exports: 'Backbone'
        },
        'underscore': {
            exports: '_'
        },
        'foo': {
            deps: ['bar'],
            exports: 'Foo',
            init: function (bar) {
                //Using a function allows you to call noConflict for
                //libraries that support it, and do other cleanup.
                //However, plugins for those libraries may still want
                //a global. "this" for the …
Run Code Online (Sandbox Code Playgroud)

javascript amd requirejs

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

Webpack ProvidePlugin vs externals?

我探索使用的想法的WebPackBackbone.js的.

我已经按照快速入门指南了解了Webpack的工作原理,但我不清楚如何加载依赖库,如jquery/backbone/underscore.

它们应该在外部加载<script>吗?或者这是Webpack可以处理的东西,如RequireJS的垫片?

按照的WebPack DOC:垫补模块,ProvidePlugin并且externals似乎与此有关(因此是bundle!装载机的地方),但我不能想出什么时候使用.

谢谢

amd requirejs backbone.js webpack

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

是否可以在AMD GPU上运行CUDA?

我想将我的技能扩展到GPU计算.我熟悉光线跟踪和实时图形(OpenGL),但下一代图形和高性能计算似乎是在GPU计算或类似的东西.

我目前在家用电脑上使用AMD HD 7870显卡.我可以为此编写CUDA代码吗?(我的直觉不是,但是因为Nvidia发布了编译器二进制文件,我可能错了).

第二个更普遍的问题是,我从哪里开始GPU计算?我确定这是一个经常被问到的问题,但我看到的最好是从08'开始,我认为从那时起该领域发生了很大的变化.

cuda gpu gpgpu amd nvidia

52
推荐指数
6
解决办法
11万
查看次数

Android Studio - 如何使用ARM代替HAXM进行AVD?

我是Android Studio的新手.我的计算机不支持HAXM,所以它不会让我安装它用于虚拟化.在本网站的一些类似问题中,人们提到使用ARM而不是HAXM设置虚拟设备.我怎样才能做到这一点?

在AVD管理器中,所有预制硬件配置文件都使用HAXM,当我单击"新硬件配置文件"时,我看不到任何使用ARM的选项.我查看了SDK Manager,对于API 22,我安装了"ARM EABI v7a系统映像"和"Google API ARM EABI v7a系统映像",这些是我需要的吗?

如何使用ARM创建自定义虚拟电话,或者我是否可以使用ARM预先存在的硬件设备而不是HAXM?

android arm amd haxm

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

如何阻止babel将'this'转换为'undefined'(并插入"use strict")

编辑:这不是胖箭.这也是不是通过一个IIFE.这是一个与转换器相关的问题.

所以我为一个我正在研究的小应用程序创建了一个简单的pub-sub.我在ES6中编写它以使用传播/休息并省去一些麻烦.我用npm和gulp进行设置来解决这个问题,但这让我发疯了.

我把它变成了一个浏览器库,但意识到它可以在任何地方使用,所以我决定让它与Commonjs和AMD兼容.

这是我的代码的精简版:

(function(root, factory) {
 if(typeof define === 'function' && define.amd) {
    define([], function() {
        return (root.simplePubSub = factory())
    });
  } else if(typeof module === 'object' && module.exports) {
    module.exports = (root.simplePubSub = factory())
  } else {
    root.simplePubSub = root.SPS = factory()
  }
}(this, function() {
 // return SimplePubSub
});
Run Code Online (Sandbox Code Playgroud)

但是,不管我什么(如使这个变量和传递),将其设置到未定义.

}(undefined, function() {
Run Code Online (Sandbox Code Playgroud)

它可能与Babel有什么关系,不知道将是什么,并将其转移,但是我还有其他方法吗?

更新:通过}((window || module || {}), function() {而不是 …

javascript amd commonjs node.js babeljs

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

在require.js data-main上过期缓存

我正在使用require.js和r.js打包我的AMD模块.我通过以下语法使用jquery和requirejs:

<script data-main="/js/client" src="/js/external/require-jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

这一切都适用于前后包装,但我遇到了很多问题,其中chrome和mobile safari持有client.js的缓存版本.我想为client.js添加一个缓存器,但我似乎无法弄清楚如何使用上面的语法来实现它.

我尝试了一些变化:

<script data-main="js/client.js?b=busted" src="/js/external/require-jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

但现在需要尝试从而获取client.js /,而不是/js404s.

我也尝试过添加

urlArgs : "bust="+new Date().getTime()
Run Code Online (Sandbox Code Playgroud)

require.config,但似乎没有效果.

我也尝试添加相同的值app.build.js,但当它在那里时,r.js不再连接我的js文件,只是uglifies它们.

破坏require.js数据主脚本缓存的正确语法是什么?

javascript caching amd browser-cache requirejs

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

为什么我们需要单页应用程序?

单页应用(SPA)已经到了我们.它也带来了许多新的东西,比如路由,客户端页面生命周期,MVC模式,MVVM模式,MV*模式......以及一些Javascript模式也像AMD模式,Singleton,Facade一样来到我们这里,..

还开发了许多SPA框架和库.我们可以在互联网上找到它的一些.它们是AngularJs,Reactjs,BackboneJs,DurandalJs,以及许多第三方组件,使得Javascript编码更容易,如RequireJs,Amplifyjs,BreezeJs ......

但我想我们为什么需要SPA呢?因为它被视为在开发Web应用程序时引入了一些新的复杂内容.尽管有SPA,我们可以使用传统的Web应用程序,每个请求每个加载页面.我只是看到一个好处,就像我们可以很容易地在移动设备上运行它并适应新的Web应用程序开发趋势.有人可以更清楚地解释一下吗?

还有一件事,如果我们使用很多第三方组件来组成一个SPA.那么它是否为这个Web应用程序提供了一致性?我认为它应该是一个复杂的维护我们的Web应用程序内的巨大组件.你觉得怎么样?

欢迎所有建议.

javascript design-patterns amd single-page-application reactjs

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