首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NextJS -意外令牌导入

NextJS -意外令牌导入
EN

Stack Overflow用户
提问于 2019-11-21 03:34:39
回答 1查看 3K关注 0票数 9

在我的下一个-js项目中集成react语法高亮符时,我使用了以下代码:

代码语言:javascript
复制
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
import { okaidia } from "react-syntax-highlighter/dist/esm/styles/prism";

...

<SyntaxHighlighter language="jsx" style={okaidia}>
{some code goes here}
</SyntaxHighlighter>

...

在运行npm时,我会得到以下错误,但前提是我直接运行页面。

代码语言:javascript
复制
Unexpected token export
/Users/johndetlefs/repos/tal-gel-framework/node_modules/react-syntax-highlighter/dist/esm/styles/prism/index.js:1
(function (exports, require, module, __filename, __dirname) { export { default as coy } from './coy';
                                                              ^^^^^^

SyntaxError: Unexpected token export
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:617:28)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.react-syntax-highlighter/dist/esm/styles/prism (/Users/johndetlefs/repos/tal-gel-framework/.next/server/static/development/pages/components.js:7242:18)
    at __webpack_require__ (/Users/johndetlefs/repos/tal-gel-framework/.next/server/static/development/pages/components.js:23:31)
    at Module../pages/components.js (/Users/johndetlefs/repos/tal-gel-framework/.next/server/static/development/pages/components.js:6839:104)
    at __webpack_require__ (/Users/johndetlefs/repos/tal-gel-framework/.next/server/static/development/pages/components.js:23:31)
    at Object.3 (/Users/johndetlefs/repos/tal-gel-framework/.next/server/static/development/pages/components.js:7175:18)
    at __webpack_require__ (/Users/johndetlefs/repos/tal-gel-framework/.next/server/static/development/pages/components.js:23:31)
    at module.exports../js/config/libs/_theme-foundation--colors.js.config.themes.list.name (/Users/johndetlefs/repos/tal-gel-framework/.next/server/static/development/pages/components.js:91:18)

如果我通过另一个页面导航到页面,那么一切都很好。如果我刷新页面,就会得到错误。

移除线

代码语言:javascript
复制
import { okaidia } from "react-syntax-highlighter/dist/esm/styles/prism";

从组件中移除样式属性可以修复所有问题,但是使用默认的棱镜样式,这不是期望的结果。

环顾四周,我可以看到人们也有类似的问题,修复可能与next.js.config文件有关,以及css文件是如何在服务器端加载的,但我不是100%的在那里做什么。

假设next.js.config文件是解决方案的一部分,下面是当前的内容。

代码语言:javascript
复制
const withSass = require("@zeit/next-sass");
const withCSS = require("@zeit/next-css");

module.exports = withCSS(
  withSass({
    webpack(config) {
      config.module.rules.push({
        test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/,
        use: {
          loader: "url-loader",
          options: {
            limit: 100000
          }
        }
      });
      config.module.rules.push({
        test: /\.svg$/,
        use: ["@svgr/webpack"]
      });
      return config;
    }
  })
);

我已经尝试过了&不包括withCSS,问题仍然是一样的。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-10 08:31:08

在深入研究了一段时间之后,我查看了npm目录,发现有两种类型的dists:cjs & esm。简单的修复方法是只使用cjs dist而不是esm dist

import { darcula } from 'react-syntax-highlighter/dist/cjs/styles/prism';

希望这会有所帮助:)

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58966891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档