问题标签 [rollupjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
170 浏览

angular - 使用桶进行aot编译+汇总后找不到Angular 2服务

我有一个大型 angular2 应用程序 - 在 JIT 模式下完美运行。但是,在进行 AOT 编译和汇总后,应用程序不再工作。

我收到的错误是

经过调查,我发现我的桶文件是导致此问题的原因。如果我像这样导入服务:

我得到了错误。但是,如果我将导入语句更改为:

一切正常...

任何人都知道如何解决这个问题?我不想停止使用桶文件...

0 投票
2 回答
1465 浏览

javascript - rollupjs - 未创建 babelHelpers 对象

我正在使用汇总和 babel 转换一些 ES6 代码并将结果捆绑到一个文件中,但是我遇到了 babelHelpers 对象的一些问题。

rollup.config.js:

.babelrc:

和 package.json 的一部分:

核心.js:

捆绑输出:

正如您在 core.js 中看到的,我使用的是 ES6 类。我希望 babel 只为使用过的对象添加 polyfill。由于目前我只使用类,我希望 babel 只使用 checkClassCall 和其他函数来使“类”功能正常工作。但它为我的最终包添加了整个 polyfill 功能。

所以我做了一些研究,发现了“external-helpers-2”和选项:externalHelpers:true runtimeHelpers:true

它将每个 babel 功能打包在 babelHelpers 中,但我不知道如何使用最终 IIFE 顶部的所有功能生成对象。

编辑

如果我使用转换运行时,那么我会在控制台中得到它

将 'babel-runtime/helpers/classCallCheck' 视为外部依赖项 将 'babel-runtime/helpers/createClass' 视为外部依赖项 在 options.globa 中没有为外部模块 'babel-runtime/helpers/classCallCheck' 提供名称 ls – 猜测' _classCallCheck' 没有为 options.globals 中的外部模块 'babel-runtime/helpers/createClass' 提供名称 - 猜测 '_createClass'

_classCallCheck 和 _createClass 也被添加到我在最终汇总 IIFE 中的参数中

0 投票
2 回答
776 浏览

angular - Angular 2 - 为 JIT 和 AoT 导入外部库

我正在尝试将我的代码库配置为能够同时执行 JiT 和 AoT,以便我可以将 JiT 用于本地开发,将 AoT 用于生产。我在这里遵循了角度文档,并成功地让两者单独工作。

我面临的问题是当我尝试导入外部库时,特别是 moment-js。

对于 JiT,我使用的是 SystemJS,其配置为

然后在打字稿中导入一个组件,我可以这样做

这适用于本地开发。

但是,当我尝试使用汇总进行 AoT 编译时,出现Cannot call a namespace ('moment')编译错误。我在这个线程之后解决了这个问题,所以在对汇总配置进行了几次更改之后,组件中的导入语句应该是

这对于 AoT 和汇总非常有效,但现在 SystemJS 无法理解这一点。

我似乎无法跳出循环。我可以让一个工作,但不能同时工作。有没有办法让 SystemJS 理解汇总所需的导入语句?我认为反过来是不可能的。

编辑

我确实找到了一种至少让它工作的方法,但这并不完全理想。我没有导入它,而是将其声明为any,然后使用脚本标记从外部加载到库中。所以现在组件是

正如我所说,这并不理想,因为这不允许我将 moment 与 AoT 构建捆绑在一起,并且它还强制 typescript 解释'moment' var,因为any现在它不知道它的类型。所以这仍然不能完全回答我的问题,但这至少有效。

0 投票
3 回答
14973 浏览

sass - 在汇总中链接 PostCSS 和 SASS 的正确方法

我正在尝试设置汇总以使用 SCSS 样式表和丢失的网格系统,这需要通过 PostCSS 进行解析。我已经验证 SCSS 被正确解析,但 PostCSS 处理器似乎没有任何效果。

根据rollup-plugin-sass文档,我只需要将 vanilla JS 函数传递给processor选项。这可以正常工作,但生成的 CSS 也不例外。

这是我的汇总配置,名为rollup -c config/dev.js

取消注释该processor行无效。它应该将lost-column行转换为calc指令,并将供应商前缀添加到需要它们的 CSS 属性中。

这样做的正确方法是什么?

0 投票
1 回答
1829 浏览

node.js - RollupJS`解决失败:错误:找不到模块'babel-runtime'`

汇总错误示例

说明汇总的(可能)问题。

我错过了什么吗?这是一个具有最小配置的项目,可以重现我遇到的“问题”。问题似乎只是无关的命令行日志记录,而不会影响捆绑包本身;即捆绑包被正确和准确地创建。

该项目显示输出:

重现此的命令是:

  • npm run bundle, 或者
  • ./node_modules/.bin/rollup -c rollup.js

在其他项目中,我有类似的问题,额外的解决“失败”似乎不会影响捆绑包本身。这是很容易解决的问题吗?

我创建了一个 Git 存储库 - https://github.com/kalisjoshua/rollup-error-example - 它展示了这种行为。

我错过了什么?

0 投票
0 回答
114 浏览

angular - 使用 AOT 编译生成 Angular 2 Production-“文件夹”

我有一个 Angular2 应用程序,它在具有 jit 和 aot 编译的 lite 服务器上本地运行。

对于 aot,我遵循了https://angular.io/docs/ts/latest/cookbook/aot-compiler.html上的教程。现在我想在 apache 服务器上托管应用程序。但是,我的项目中似乎存在一些配置问题。我有已编译的 aot 文件夹,其中包含子文件夹 node_moduels 和 app + dist/build.js。到目前为止,一切都很好。我认为将文件夹 aot + dist 和文件 index.html(在教程中引用 build.js)+ styles.css 复制到 apache 服务器应该可以。但是,这会在运行应用程序时导致错误的引用。

对于 index.html 中引用的所有文件,我得到 404,例如: http://apacheserverurl/dist/build.js

当我在浏览器中手动打开 index.html 时,也会出现同样的问题。因为我编译了所有的 javascript 和 html 文件,这不应该工作吗?

任何帮助深表感谢。

0 投票
1 回答
840 浏览

javascript - 创建一个 NPM 包,使 ES6 导入到樱桃挑选导出

在构建 NPM 包时,如何创建一个能够支持单独导出以节省 Webpack、Rollup 或 Browserify 包大小的构建?

首选语法是:

import { myModuleOne, myModuleTwo } from 'my-npm-package';

或者

0 投票
1 回答
6428 浏览

javascript - 外部依赖项错误地捆绑在 rollup.js 中?

我正在尝试使用rollup.js创建 2 个单独的构建:application.jsdependencies.js,分别包含我的应用程序代码和公共库代码(reactreact-dom等)。

文档说我应该能够简单地使用externals: ['react', 'react-dom']它并让它工作 - 但是当我检查生成的包时,我仍然最终包含了两个库的完整主体。这是我的例子app.config.js,我称之为rollup -c app.config.js

我究竟做错了什么?

0 投票
4 回答
10848 浏览

javascript - 全局变量在 NodeJS 中不起作用

我试图让全局变量在 node.js 中工作,但似乎我并不真正理解这个概念,即使我的理解与文档相匹配。

最小的例子

我使用汇总编译的main.js文件是:

我的core/test.js文件很简单:

这会导致错误:

未捕获的 ReferenceError: a 未定义

完全编译的输出是:

似乎. a_ 我不是 100% 确定这在 JS 中是否重要,但它可能会导致错误。 console.log(a);

所以我的问题是:是什么原因造成的,我在这里做错了什么?

可能相关信息:我正在使用 Laravel Elixir 编译所有内容。

注意:请不要发布关于是否在 node.js 或一般情况下使用全局变量的讨论。我知道这通常是个坏主意,但在这种情况下我有充分的理由这样做。

编辑:附加上下文

我真正想做的是让 Zurb Foundation 通过 node.js 与 Laravel Elixir 一起工作。我是foundation-sites通过 NPM 安装的。foundation-sites依赖jquery,它自己拉。但是,Foundation 似乎并没有遵循通常的惯例,即var jquery = require('jquery');在自己的 js 文件中使用类似的东西。它实际上依赖于jQuery可用的全局变量。因此,我必须以某种方式确保这一点。

我的实际文件如下所示:

因此,如果有任何 Foundation/Laravel 特定的答案,我也会很高兴听到它们。有什么我没有得到的,还是基金会没有以“正确”的方式创建他们的包?

0 投票
1 回答
24930 浏览

javascript - Rollup.js 未解决的依赖项

我正在尝试将 rollup.js 合并到一个项目中。目前我在控制台中收到下面提供的警告(未解决的依赖项),我不确定为什么或如何修复它:

这是需要 FileReader 和 https 的 test.js 脚本:

最后是执行创建包的 rollup.config.js 文件: