【问题标题】:How to include "require" in PhpStorm for my JavaScript code?如何在我的 JavaScript 代码的 PhpStorm 中包含“require”?
【发布时间】:2019-08-09 14:37:38
【问题描述】:

我在我的代码中使用canvg('canvas', svg); 行。这意味着我需要 canvg.js。

我在我的 html 标头中包含了 canvg.js。但是,它给了我一个“require is undefined”的错误。

对于不知道canvg.js前两行的人来说:

var RGBColor = require('rgbcolor'),
    StackBlur = require('stackblur-canvas');

这首先在我的控制台中显示为错误。这并不是真正的问题,因为代码仍然有效。

现在我要开始测试了,尽管错误会导致测试无法运行。这是个问题。

error loading file: /test/tests/Dependencies/canvg.js:4: Uncaught ReferenceError: require is not defined

我去了https://requirejs.org/docs/release/2.3.6/comments/require.js并将代码复制并粘贴到一个名为require236.js的文件中并保存在我的项目中。

然后我转到我的 main.html 并添加了我的 <script src="require236.js"></script> 在加载canvg之前。

我在控制台中遇到了这些错误:

 Uncaught Error: Mismatched anonymous define() module: function(){return f}
https://requirejs.org/docs/errors.html#mismatch
   at makeError (require236.js:168)
   at intakeDefines (require236.js:1254)
   at require236.js:1452
require236.js:143 Uncaught Error: Module name "rgbcolor" has not been loaded yet for context: _. Use require([])
https://requirejs.org/docs/errors.html#notloaded
  at makeError (require236.js:168)
  at Object.localRequire [as require] (require236.js:1436)
  at requirejs (require236.js:1797)
  at canvg.js:4

而且我的测试不会将该文件作为依赖项运行。

https://requirejs.org/docs/errors.html#mismatch

为了避免错误:

确保通过 RequireJS API 加载所有调用 define() 的脚本。

不要在 HTML 中手动编写脚本标签来加载具有 define() 调用它们。

如果您手动编写 HTML 脚本标签,请确保它只包含命名的 模块,以及一个匿名模块,它将与一个模块同名 该文件中的模块未加载。

如果问题是使用加载器插件或匿名 模块,但 RequireJS 优化器不用于文件捆绑,使用 RequireJS 优化器。

如果问题是 var define lint 方法,请使用 /*global define */(否 "global") 注释样式前的空格。

但老实说,我不明白他们希望如何包含它以及在哪里包含它。请使用简单的英文单词(或仅显示代码示例),如果您理解它足以解释它。

我正在从 PhpStorm 运行。我正在使用 jsTestDriver 进行测试。我一定是在以某种方式声明它是错误的,但我不知道 require.js 如何以及为什么会给我这样的问题。

【问题讨论】:

    标签: javascript requirejs phpstorm js-test-driver canvg


    【解决方案1】:

    简单的答案是您包含的文件不应该在浏览器中运行,因为它使用 CommonJS 语法,只能在 node 运行的服务器端代码中使用.js.

    您必须确保包含没有任何require() 调用的库的浏览器版本,例如:

    <script src="https://cdn.jsdelivr.net/npm/canvg/dist/browser/canvg.min.js"></script>
    

    https://github.com/canvg/canvg#usage-on-the-browser

    【讨论】:

    • 完美!谢谢:)
    猜你喜欢
    • 2015-02-14
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多