在位置0错误的JSON中出现意外的标记m

时间:2018-03-26 22:36:34

标签: javascript json token aurelia loader

在编译应用程序并尝试使用webpack实现i18n库时,我遇到了这个错误:

2

重复我在locales文件夹中的其他语言,该文件正确放置在src文件夹中,即使JSON文件完全为空,也会发生同样的错误。

这是webconfig.js文件:

(2 & 1) == 1

上述代码中的问题发生在

ERROR in ./node_modules/bundle-loader?lazy&name=lang-pt!./src/locales/pt/translation.json
Module parse failed: Unexpected token m in JSON at position 0
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token m in JSON at position 0
    at JSON.parse (<anonymous>)
    at JsonParser.parse (C:\Users\vasco.bento\ContactosWebPack\node_modules\webpack\lib\JsonParser.js:15:21)
    at doBuild.err (C:\Users\vasco.bento\ContactosWebPack\node_modules\webpack\lib\NormalModule.js:367:32)
    at runLoaders (C:\Users\vasco.bento\ContactosWebPack\node_modules\webpack\lib\NormalModule.js:264:12)
    at C:\Users\vasco.bento\ContactosWebPack\node_modules\loader-runner\lib\LoaderRunner.js:370:3
    at iterateNormalLoaders (C:\Users\vasco.bento\ContactosWebPack\node_modules\loader-runner\lib\LoaderRunner.js:211:10)
    at C:\Users\vasco.bento\ContactosWebPack\node_modules\loader-runner\lib\LoaderRunner.js:183:6
    at runSyncOrAsync (C:\Users\vasco.bento\ContactosWebPack\node_modules\loader-runner\lib\LoaderRunner.js:130:11)
    at C:\Users\vasco.bento\ContactosWebPack\node_modules\loader-runner\lib\LoaderRunner.js:175:3
    at loadLoader (C:\Users\vasco.bento\ContactosWebPack\node_modules\loader-runner\lib\loadLoader.js:36:3)
    at iteratePitchingLoaders (C:\Users\vasco.bento\ContactosWebPack\node_modules\loader-runner\lib\LoaderRunner.js:169:2)
    at runLoaders (C:\Users\vasco.bento\ContactosWebPack\node_modules\loader-runner\lib\LoaderRunner.js:362:2)
    at NormalModule.doBuild (C:\Users\vasco.bento\ContactosWebPack\node_modules\webpack\lib\NormalModule.js:219:3)
    at NormalModule.build (C:\Users\vasco.bento\ContactosWebPack\node_modules\webpack\lib\NormalModule.js:337:15)
    at Compilation.buildModule (C:\Users\vasco.bento\ContactosWebPack\node_modules\webpack\lib\Compilation.js:346:10)
    at factory.create (C:\Users\vasco.bento\ContactosWebPack\node_modules\webpack\lib\Compilation.js:572:15)
 @ ./node_modules/aurelia-i18n/dist/native-modules/aurelia-i18n.js
 @ ./src/main.js
 @ ./node_modules/aurelia-webpack-plugin/runtime/empty-entry.js
 @ multi aurelia-webpack-plugin/runtime/empty-entry aurelia-webpack-plugin/runtime/pal-loader-entry aurelia-bootstrapper

ERROR in chunk app [entry]
[name].[hash].bundle.js
Cannot read property 'replace' of undefined

如果您发表评论,让应用程序编译没有问题,我已经搜索了但事件虽然我发现了类似的问题,但是我没有找到一个有效的解决方案,如果有人对我如何能有任何建议解决这个问题我会很感激。

提前致谢。

2 个答案:

答案 0 :(得分:11)

它说unexpected token m的原因是因为json-loader将你的json转换成一个以module.exports = ..开头的javascript文件。

当然这是无效的json(json必须始终以开括号{开头),因此它对于&#34; m&#34; &#34;模块&#34;。

换句话说,此错误表示webpack尝试连续两次应用json-loader。将json-loader更改为raw-loader应该摆脱webpack的包装javascript并将json原样传递给其他任何可能尝试将其作为原始json加载的插件。

这是一个相关的问题,可能会帮助您解决这个问题:

https://github.com/webpack-contrib/json-loader/issues/13

答案 1 :(得分:0)

您只需以有效的 JSON 格式发送响应即可从后端消除此错误。所以自动错误将从前端开始。 只需在后端添加一行发送响应即可。

   return res.status(201).json({
                message: 'Success',
            })