因此,我一直在关注有关如何将React迁移到SSR的YouTube教程,因为我想将我的应用放入Google的抓取工具中。这是本教程:https://www.youtube.com/watch?v=NwyQONeqRXA 这是项目:https://github.com/MerceneX/BoomMap/tree/development
区别在于我正在使用npm,而本教程的伙计正在使用yarn。由于我缺乏对此主题的知识,因此不确定是否会有所作为。我设置了server.js和index.js(由于无法正常运行,因此尚未提交到github),并且在运行设置为运行npm run ssr
的{{1}}时,我收到以下错误消息:
node index.js
server.js和index.js与本教程相同,但是将所有内容集中在一个地方,它们是:
index.js:
npm run ssr
> client@0.1.0 ssr D:\Projects\Webpages\BoomMap\clientTest
> node index.js
D:\Projects\Webpages\BoomMap\clientTest\node_modules\reactstrap\es\Col.js:1
(function (exports, require, module, __filename, __dirname) { import _extends from "@babel/runtime/helpers/esm/extends";
^^^^^^^^
SyntaxError: Unexpected identifier
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
at Module._compile (internal/modules/cjs/loader.js:657:28)
at Module._compile (D:\Projects\Webpages\BoomMap\clientTest\node_modules\pirates\lib\index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Object.newLoader [as .js] (D:\Projects\Webpages\BoomMap\clientTest\node_modules\pirates\lib\index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
server.js:
require("ignore-styles");
require("@babel/register")({
ignore: [/(node_module)/],
presets: ["@babel/preset-env", "@babel/preset-react"],
});
require("./server");
我不知道该怎么办,因为错误来自重新捕获库。依赖冲突可能会发生吗?
无论如何,如果有人对如何将网站转换为SSR或通过其他任何方式让Google进行爬网有更好的主意,我非常想寻求建议:)
感谢阅读,欢呼声。