首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理SyntaxError -local-storage/contex.js

处理SyntaxError -local-storage/contex.js
EN

Stack Overflow用户
提问于 2020-06-25 00:57:30
回答 1查看 94关注 0票数 1

我正在尝试使用Rollup生成一个树摇动的、精简的脚本,以部署到AWS Lambda。然而,由于某些原因,rollup似乎被choking local-storage库阻塞了。

错误:

代码语言:javascript
复制
Error: Unexpected token
    at error (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:5154:30)
    at Module.error (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:9592:16)
    at tryParse (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:9506:23)
    at Module.setSource (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:9890:30)
    at ModuleLoader.addModuleSource (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:17742:20)
    at ModuleLoader.fetchModule (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:17796:9) {
  code: 'PARSE_ERROR',
  parserError: SyntaxError: Unexpected token (24:0)
      at Object.pp$4.raise (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:15064:13)
      at Object.pp.unexpected (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:12835:8)
      at Object.pp$1.parseStatement (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:12975:120)
      at Object.pp$1.parseIfStatement (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:13136:26)
      at Object.pp$1.parseStatement (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:12980:31)
      at Object.pp$1.parseTopLevel (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:12892:21)
      at Object.parse (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:12692:15)
      at Function.parse (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:12715:35)
      at tryParse (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:9493:23)
      at Module.setSource (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:9890:30)
      at ModuleLoader.addModuleSource (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:17742:20)
      at ModuleLoader.fetchModule (/Users/chris/Code/box-stack/node_modules/rollup/dist/shared/rollup.js:17796:9) {
    pos: 418,
    loc: Position { line: 24, column: 0 },
    raisedAt: 426
  },
  id: '/Users/chris/Code/box-stack/node_modules/continuation-local-storage/context.js',
  pos: 418,
  loc: {
    file: '/Users/chris/Code/box-stack/node_modules/continuation-local-storage/context.js',
    line: 17,
    column: 0
  },
  frame: '15: if (!process.addAsyncListener) ' +
    "require('async-listener');\n16: \n17: function " +
    'Namespace(name) {\n    ^\n18:   this.name   = name;\n19:   // ' +
    'changed in 2.7: no default context',
  watchFiles: [
    ...
  ]
}

违规代码(continuation local-storage/context.js第17行,位置0)是:

代码语言:javascript
复制
function Namespace(name) {

我不明白这里怎么会有语法错误:

我通过javascript api运行rollup,因为我需要以编程方式生成输入,这是我调用构建的地方:

代码语言:javascript
复制
try {
    const build = await rollup({
      external: ['aws-sdk', ...builtinModules],
      input,
      plugins: [
        commonjs(),
        nodeResolve({ extensions: ['.ts', '.js', '.json', '.node', '.mjs'] }),
        json(),
        babel({ extensions: ['.ts'], babelHelpers: 'bundled' })
      ]
    });
    await build.write({
      dir: outDir,
      format: 'cjs',
      entryFileNames: '[name].js',
      sourcemap: false
    });
  } catch (err) {
    console.log(err);
    throw err;
  }
EN

回答 1

Stack Overflow用户

发布于 2020-07-17 18:52:10

如果其他人遇到这个问题,有一种解决方法:

https://github.com/rollup/plugins/issues/202

添加替换:

代码语言:javascript
复制
plugins: [
  replace({"if (!process.addAsyncListener) require('async-listener": "require('async-listener"})
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62560290

复制
相关文章

相似问题

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