标签: amd

Webpack:表达模块依赖

我正在尝试使用webpacked应用程序中requirebootstrap-webpack模块.

它似乎需要jQuery,因为捆绑的javascript然后抛出以下内容:

未捕获的ReferenceError:未定义jQuery

我如何指定webpack jQuery是bootstrap-webpack模块的依赖项,以解决这个问题?感觉它应该是微不足道的,但我一直在努力弄明白.

我试过添加:

"jquery": "latest"
Run Code Online (Sandbox Code Playgroud)

在bootstrap-webpack中的dependecies package.json,但这不起作用.该文档是不完整的,我似乎无法找到很多关于这个问题.这应该是微不足道的吧?救命!

amd requirejs webpack

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

如何将 AMD GPU 用于 fastai/pytorch?

我使用的是配备 Intel Corporation HD Graphics 5500 (rev 09) 和 AMD Radeon r5 m255 显卡的笔记本电脑。

有谁知道如何为深度学习设置它,特别是 fastai/Pytorch?

gpu amd pytorch fast-ai

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

英特尔和AMD处理器是否具有相同的汇编程序?

C语言用于编写UNIX以实现可移植性 - 使用不同编译器编译的相同C语言程序生成不同的机器指令.为什么Windows操作系统能够在Intel和AMD处理器上运行?

c x86 compatibility amd intel

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

webpack样式加载器是否意味着加载所有css?或者只是应用程序特定的CSS?

我正在尝试使我的前端设计过程更加模块化,并且正在探索webpack.它支持样式加载器,它允许您导入css文件并将其注入文档中,如下所示:

require("style/url!file!./file.css");
// => add a <link rel="stylesheet"> to file.css to document
Run Code Online (Sandbox Code Playgroud)

但是,我的主要关注点是网站,而不是webapps 1,所以通过javascript添加css感觉很奇怪.但我可能只是老式的,所以我想知道:加载器是用于所有css,还是仅仅意味着加载css的小的,有条件的部分?

如果它可以用于加载所有的CSS,使用生成的webpack bundle.js来注入css而不是直接链接html中的css文件会有任何惩罚吗?除了javascript没有启用它明显破坏?


1:不同之处在于我的动态内容非常少,javascript在这些网站中只扮演次要角色,而且我没有使用javascript进行路由,但是页面上有静态的.html文件

html javascript css amd webpack

19
推荐指数
1
解决办法
8671
查看次数

Require.ensure()非阻塞

如果我们有webpack创建的不同bundle ,我们可以在以后的某个时间require.ensure动态传输和评估它,它通过jsonPadding和一些webpack js魔法发生.如果我们有

require.ensure([ ], ( require ) => {
    console.log('before...');
    var data = require( './myModule.js' );
    console.log('after...');
  }, 'myModule')
Run Code Online (Sandbox Code Playgroud)

"after..."完全转移和评估该模块时会遇到.如果碰巧是这个/模块非常大,包含图像,css等等,那么加载将几乎锁定浏览器,而webpack javascript代码解包了包含其所有组件的包.

问题:有没有办法"挂钩"那个require魔法?例如,对于以下内容进行回调将是一个梦想的场景:

  • 整个文件/块已转移
  • 图像[1]进行了评估
  • css [1]被评估/样式标签被注入
  • javascript被评估了

等等,假设我们传输的包含有大量数据.一般来说,让我很难有一个很好的选择来动态地异步传输整个bundle,但仍然必须以完全同步/阻塞的方式加载那个bundle.

javascript amd commonjs webpack

19
推荐指数
1
解决办法
1845
查看次数

使用RequireJS和非AMD JavaScript文件

我正在尝试将JavaScript密集的页面转换为使用TypeScript,并使用RequireJS来管理模块依赖项.

我遇到的问题是,除了TypeScript文件之间的相互依赖关系外,该页面还依赖于与系统其他部分共享的一些常见JavaScript文件,尚未转换为AMD.

将非AMD脚本放在<SCRIPT>标签上方的普通标签中是非常危险的,只是假设它们被加载了吗?

如果这是一个坏主意,那么处理这个问题的更好方法是什么?我是否需要拥有每个脚本的AMD和非AMD版本?或者我是否需要转换所有脚本以便他们可以选择调用define()

javascript amd requirejs typescript

17
推荐指数
1
解决办法
6557
查看次数

Backbone/Require Application中共享对象的最佳实践

我一直在开发Backbone应用程序,我刚开始学习使用Backbone和Require.js.

在我重构的骨干应用程序中,我定义了一个这样的命名空间:App.model.repo.该模型在不同视图中反复使用.例如,我用一些集合做同样的事情App.collection.files.使用初始索引文件请求引导这些模型和集合.

我确实找到了这个示例,这看起来像是获取引导数据的好方法.但是,我正在努力寻找重用/共享这些模型和视图之间的集合的最佳方法.

我可以想到三种可能的解决方案.哪个最好,为什么?或者是否有我完全遗漏的另一种解决方案?

解决方案1

在索引中定义这些常用模块和集合(当它们被引导时),然后将它们作为选项(of initialize)传递给每个Backbone视图.

define(['jquery', 'underscore', 'backbone', 'handlebars', 'text!templates/NavBar.html'], 
    function($, _, Backbone, Handlebars, template){     
        return Backbone.View.extend({
            template: Handlebars.compile(template),
            initialize: function(options){
                this.repoModel = options.repoModel; // common model passed in
            }
        });
    }
);
Run Code Online (Sandbox Code Playgroud)

就分离来说,这些看起来很干净,但是可以快速得到时髦,大量的东西都会传遍整个地方.

解决方案2

定义globals模块,并向其中添加常用的模型和集合.

// models/Repo.js
define(['backbone'],
    function(Backbone){
        return Backbone.Model.extend({
            idAttribute: 'repo_id'
        });
    }
);

// globals.js (within index.php, for bootstrapping data)
define(['underscore', 'models/Repo'], 
    function(_, RepoModel){     
        var globals = {};

        globals.repoModel = new Repo(<?php echo json_encode($repo); ?>); …
Run Code Online (Sandbox Code Playgroud)

amd requirejs backbone.js

17
推荐指数
1
解决办法
2659
查看次数

打字稿模块创建AMD vs Common JS

任何打字稿专家都可以澄清在使用Typescript时何时以及为什么选择AMD vs Common JS进行模块创建?

module amd commonjs typescript

17
推荐指数
2
解决办法
5448
查看次数

仅使用环境定义导入TypeScript模块以在amd中使用

我有一个依赖的模块Backbone.我有一个backbone.d.ts定义,但TypeScript似乎不想编译我的模块,除非我的

import Backbone = module("backbone")
Run Code Online (Sandbox Code Playgroud)

实际上指向有效的主干模块而不是定义文件.我正在使用AMD加载的模块,并为骨干网定义了一个requirejs垫片.

除了创建一个虚假的backbone.ts模块定义之外,还有解决方法吗?

更新:解决方案的副作用是此类代码不再有效,因为模块不再存在.它需要存在因为requirejs垫片.我所知道的唯一解决方法是拥有两个.d.ts文件.一个用于使用骨干作为导入但不包含该declare module位的文件.另一个使用/// <reference它确实包括declare module线.

/// <reference path="../dep/backbone/backbone.d.ts" />

interface IApi {
    version: number;
    Events: Backbone.Events;
}
Run Code Online (Sandbox Code Playgroud)

javascript amd requirejs typescript

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

使用带有CommonJS语法文件的Karma和RequireJS进行测试

我正在研究一个用CommonJS语法编写的角度应用程序,并使用grunt-contrib-requirejs任务的grunt任务将源文件转换为AMD格式并将其编译成一个输出文件.我的目标是使Karma与RequireJS一起工作,并将我的源文件和spec文件保存在CommonJS语法中.

我已经能够通过以下文件结构以AMD格式传递一个简单的测试:

-- karma-test
   |-- spec
   |   `-- exampleSpec.js
   |-- src
   |   `-- example.js
   |-- karma.conf.js
   `-- test-main.js
Run Code Online (Sandbox Code Playgroud)

和以下文件:

karma.conf.js

// base path, that will be used to resolve files and exclude
basePath = '';

// list of files / patterns to load in the browser
files = [
  JASMINE,
  JASMINE_ADAPTER,
  REQUIRE,
  REQUIRE_ADAPTER,
  'test-main.js',
  {pattern: 'src/*.js', included: false},
  {pattern: 'spec/*.js', included: false}
];

// list of files to exclude
exclude = [];

// test results reporter to use
// possible …
Run Code Online (Sandbox Code Playgroud)

javascript amd commonjs requirejs karma-runner

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