我已经在一个项目上工作了几个月,我想使用 Atom 来嵌入应用程序。 该项目使用 requireJS,我从未在 web 版本甚至 node-webkit 构建上遇到脚本加载问题,但是,使用 Atom,脚本无法正确加载。
我做了一个小例子来说明这个问题。 这是一个mac版本。
https://github.com/cniaulin/loading-issue
克隆 repo,启动 Atom.app。 查看是否定义了时刻,如果是 cmd + r,您会发现并非总是如此。
您可以使用 cmd + alt + i 显示控制台
文件位于此处:Atom.app/Contents/Resources/app/
有没有人有解决方案或解决方法?
嗨,我对 requireJs 的了解是它们有类似的 require 方法与节点冲突,尝试使用 requirejs 作为替代方法。
最佳实践:使用 npm 将仅限 Node 的包/模块安装到项目 node_modules 目录中,但不要将 RequireJS 配置为查看 node_modules 目录内部。 还要避免使用相对模块 ID 来引用仅节点模块的模块。 所以,不要做类似 require("./node_modules/foo/foo") 的事情。
@cniaulin一种解决方法是通过在加载require.js
之前将其重命名为其他内容来释放require
变量,如下所示:
<script>
if (window.require) {
window.nodeRequire = window.require;
delete window.require;
}
</script>
您需要在要调用 Node.js 版本的require
$ 的任何地方调用nodeRequire
$#$ 。
我正在关闭它,因为没有计划在 atom-shell 中支持 requireJS。
最有用的评论
@cniaulin一种解决方法是通过在加载
require.js
之前将其重命名为其他内容来释放require
变量,如下所示:您需要在要调用 Node.js 版本的
require
$ 的任何地方调用nodeRequire
$#$ 。