首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lodash.js SyntaxError:意外令牌)

lodash.js SyntaxError:意外令牌)
EN

Stack Overflow用户
提问于 2019-04-02 01:56:49
回答 2查看 1.6K关注 0票数 0

我在一个曾经有效的nuxt.js项目上遇到了这个奇怪的错误,问题是在一个新的npm install && npm run dev之后,我得到了:

代码语言:javascript
复制
SyntaxError: Unexpected token )
    at Function (<anonymous>)
    at /home/user/Documents/project/frontend/src/node_modules/lodash/lodash.js:14866:16

引用的行是这样的:

代码语言:javascript
复制
14865: var result = attempt(function() {
14866:   return Function(importsKeys, sourceURL + 'return ' + source)
14867:    .apply(undefined, importsValues);
14868: });

我看不出有什么问题。我怀疑这是一个webpack或加载器的问题,但我就是不知道到底是什么。我曾尝试将webpacklodash压缩到以前的主要版本,但结果是一样的(恢复lodash实际上会让一切变得更糟)。这是package.json:

代码语言:javascript
复制
{
  "name": "frontend",
  "version": "0.1.1",
  "description": "Nuxt.js project",
  "private": true,
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
    "precommit": "npm run lint"
  },
  "dependencies": {
    "@fortawesome/fontawesome-free": "5.5.0",
    "@mdi/font": "2.6.95",
    "@nuxtjs/apollo": "3.0.7",
    "@nuxtjs/axios": "5.3.1",
    "ajv": "6.5.2",
    "apollo-cache-inmemory": "1.2.6",
    "apollo-client": "2.3.7",
    "apollo-link": "1.2.2",
    "apollo-link-context": "1.0.9",
    "apollo-link-error": "1.1.1",
    "apollo-link-http": "1.5.4",
    "graphql": "0.13.2",
    "graphql-tag": "2.9.2",
    "jwt-decode": "2.2.0",
    "nuxt": "1.4.4",
    "qrious": "4.0.2",
    "stylus": "0.54.5",
    "vue-apollo": "3.0.0-beta.19",
    "vue-i18n": "8.0.0",
    "vuejs-logger": "1.5.3",
    "vuetify": "1.3.9",
    "vuex-pathify": "1.1.3",
    "vuex-persistedstate": "2.5.4"
  },
  "devDependencies": {
    "babel-eslint": "8.2.1",
    "css-loader": "1.0.0",
    "eslint": "4.15.0",
    "eslint-friendly-formatter": "3.0.0",
    "eslint-loader": "1.7.1",
    "eslint-plugin-vue": "4.0.0",
    "node-sass": "4.9.2",
    "pug": "2.0.3",
    "pug-plain-loader": "1.0.0",
    "sass-loader": "7.0.3",
    "style-loader": "0.21.0",
    "stylus-loader": "3.0.2"
  }
}

这是我尝试使用的npm-shrinkwrap (与lodash相同):

代码语言:javascript
复制
{
  "name": "frontend",
  "version": "0.1.1",
  "lockfileVersion": 1,
  "dependencies": {
    "webpack": {
      "version": "3.11.0",
      "from": "webpack@3.11.0"
    }
  }
}

这是nuxt中的bug吗,是webpack还是lodash?它甚至是一个bug吗?

EN

回答 2

Stack Overflow用户

发布于 2019-04-02 02:06:12

作为关键字的return就是tripping automatic semicolon insertion。因此,您的代码被解释为:

代码语言:javascript
复制
return Function(importsKeys, sourceURL + 'return ' + source);


.apply(undefined, importsValues);

尝试组合这些行。

票数 2
EN

Stack Overflow用户

发布于 2019-04-02 03:22:38

正如另一个答案所暗示的那样,这确实是webpack的一个问题,但更奇怪的是。最后,这个问题是由app.html文件( zopim聊天客户机段)中的一个脚本引起的:

代码语言:javascript
复制
<!DOCTYPE html>
<html HTML_ATTRS {{ }}>
<head>
  {{ HEAD }}
</head>
<body BODY_ATTRS {{ }}>
{{ APP }}
</body>

<!--Start of Zendesk Chat Script-->
<script type="text/javascript">
  window.$zopim || (function (d, s) {
    var z = $zopim = function (c) {z._.push(c)}, $ = z.s =
      d.createElement(s), e = d.getElementsByTagName(s)[0]
    z.set = function (o) {
      z.set._.push(o)
    }
    z._ = []
    z.set._ = []
    $.async = !0
    $.setAttribute('charset', 'utf-8')
    $.src = 'https://v2.zopim.com/?XXXXX...'
    z.t = +new Date
    $.type = 'text/javascript'
    e.parentNode.insertBefore($, e)
  })(document, 'script')
</script>
<!--End of Zendesk Chat Script-->
</html>

不知何故,这段代码在捆绑步骤中让webpack发疯了,它责怪lodash,所需做的就是删除它(我将不再使用它)。

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

https://stackoverflow.com/questions/55461005

复制
相关文章

相似问题

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