Fel*_* B. 5 javascript commonjs ecmascript-6 rollupjs
我不确定我是否应该使用该require版本或该import版本。它没有在文档中说明这一点,我在 Github 问题中发现了这样的声明:
绝对不鼓励混合 import 和 require。Rollup 处理 require 语句的唯一方法是使用 rollup-plugin-commonjs,但该插件将跳过任何带有 import 或 export 语句的文件。
这可以解释为:“您仍然需要使用require,否则 common-js 插件将忽略您的文件,并且事情将无法工作。” 或者“总是使用import其他一切都会构成混合”。所以这真的让我很困惑。
我正在尝试将 CommonJS 库(Citation-js)导入到 javascript 模块中(实际上是打字稿,但我希望这与这里无关)。现在 common-js 的文档告诉我要做的
const Cite = require('common-js');
Run Code Online (Sandbox Code Playgroud)
这告诉我它是一个 commonjs 库(对吗?)。因此我添加了
import commonjs from "rollup-plugin-commonjs";
import { nodeResolve } from "@rollup/plugin-node-resolve";
Run Code Online (Sandbox Code Playgroud)
到我的汇总配置并放入plugins: [commonjs(), typescript(), nodeResolve()]配置中。
现在,vscode 不再强调所有内容,并使用 rollup 构建网站再次正常工作。但编译后的 JavaScript 只是声明,require('common-js')而我的浏览器抱怨require未定义。
Uncaught ReferenceError: require is not defined
Run Code Online (Sandbox Code Playgroud)
所以我尝试了
Uncaught ReferenceError: require is not defined
Run Code Online (Sandbox Code Playgroud)
反而。但这导致汇总构建失败
import Cite from 'common-js';
Run Code Online (Sandbox Code Playgroud)
现在我当然可以安装该插件了。但我不确定这是正确的,因为像 rollup 这样的工具的全部要点应该是依赖项的依赖项应该自动解决,对吧?
这似乎可以解决我的问题:Using Older Require Module With Rollup
但:
rollup-plugin-node-builtins没有得到维护(npm 抗议安全漏洞,我发现了这个: https: //github.com/rollup/rollup/issues/2881)。编辑:我猜有一个新的包rollup-plugin-polyfill-node取代了它。resolve不再是成员,@rollup/plugin-node-resolve所以我认为这已经成为nodeResolve我已经在使用的......编辑:安装@rollup/plugin-json实际上让我再次构建网站(带有一堆警告)
(!) Missing shims for Node.js built-ins(上面没有固定rollup-plugin-polyfill-node)(!) Missing global variable names(!) Circular dependencies(!) Unresolved dependencies不知道如何处理这些警告
| 归档时间: |
|
| 查看次数: |
2503 次 |
| 最近记录: |