问题标签 [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.
angular - 使用桶进行aot编译+汇总后找不到Angular 2服务
我有一个大型 angular2 应用程序 - 在 JIT 模式下完美运行。但是,在进行 AOT 编译和汇总后,应用程序不再工作。
我收到的错误是
经过调查,我发现我的桶文件是导致此问题的原因。如果我像这样导入服务:
我得到了错误。但是,如果我将导入语句更改为:
一切正常...
任何人都知道如何解决这个问题?我不想停止使用桶文件...
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 中的参数中
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
现在它不知道它的类型。所以这仍然不能完全回答我的问题,但这至少有效。
sass - 在汇总中链接 PostCSS 和 SASS 的正确方法
我正在尝试设置汇总以使用 SCSS 样式表和丢失的网格系统,这需要通过 PostCSS 进行解析。我已经验证 SCSS 被正确解析,但 PostCSS 处理器似乎没有任何效果。
根据rollup-plugin-sass
文档,我只需要将 vanilla JS 函数传递给processor
选项。这可以正常工作,但生成的 CSS 也不例外。
这是我的汇总配置,名为rollup -c config/dev.js
:
取消注释该processor
行无效。它应该将lost-column
行转换为calc
指令,并将供应商前缀添加到需要它们的 CSS 属性中。
这样做的正确方法是什么?
node.js - RollupJS`解决失败:错误:找不到模块'babel-runtime'`
汇总错误示例
说明汇总的(可能)问题。
我错过了什么吗?这是一个具有最小配置的项目,可以重现我遇到的“问题”。问题似乎只是无关的命令行日志记录,而不会影响捆绑包本身;即捆绑包被正确和准确地创建。
该项目显示输出:
重现此的命令是:
npm run bundle
, 或者./node_modules/.bin/rollup -c rollup.js
在其他项目中,我有类似的问题,额外的解决“失败”似乎不会影响捆绑包本身。这是很容易解决的问题吗?
我创建了一个 Git 存储库 - https://github.com/kalisjoshua/rollup-error-example - 它展示了这种行为。
我错过了什么?
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 文件,这不应该工作吗?
任何帮助深表感谢。
javascript - 创建一个 NPM 包,使 ES6 导入到樱桃挑选导出
在构建 NPM 包时,如何创建一个能够支持单独导出以节省 Webpack、Rollup 或 Browserify 包大小的构建?
首选语法是:
import { myModuleOne, myModuleTwo } from 'my-npm-package';
或者
javascript - 外部依赖项错误地捆绑在 rollup.js 中?
我正在尝试使用rollup.js创建 2 个单独的构建:application.js
和dependencies.js
,分别包含我的应用程序代码和公共库代码(react
、react-dom
等)。
文档说我应该能够简单地使用externals: ['react', 'react-dom']
它并让它工作 - 但是当我检查生成的包时,我仍然最终包含了两个库的完整主体。这是我的例子app.config.js
,我称之为rollup -c app.config.js
:
我究竟做错了什么?
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 特定的答案,我也会很高兴听到它们。有什么我没有得到的,还是基金会没有以“正确”的方式创建他们的包?
javascript - Rollup.js 未解决的依赖项
我正在尝试将 rollup.js 合并到一个项目中。目前我在控制台中收到下面提供的警告(未解决的依赖项),我不确定为什么或如何修复它:
这是需要 FileReader 和 https 的 test.js 脚本:
最后是执行创建包的 rollup.config.js 文件: