Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止网页包装';使默认加载程序停止运行_Javascript_Json_Webpack_Webpack Loader - Fatal编程技术网

Javascript 防止网页包装';使默认加载程序停止运行

Javascript 防止网页包装';使默认加载程序停止运行,javascript,json,webpack,webpack-loader,Javascript,Json,Webpack,Webpack Loader,Webpack内置了一个JSON加载程序。如何编写一个不尝试在结果上运行内置JSON加载程序的自定义加载程序 基本上,我希望我的加载程序接收一个配置对象(存储在JSON文件中)并从该配置生成源代码,该配置不再是有效的JSON,而是JavaScript(随后可以通过babel加载程序提供) 这里有一个非常愚蠢、人为的例子。源文件是一个JSON文件,但我希望加载程序的输出是一些JS 装载机 网页包配置 相反,我最终得到了以下错误: ERROR in ./config.json Module pars

Webpack内置了一个JSON加载程序。如何编写一个不尝试在结果上运行内置JSON加载程序的自定义加载程序

基本上,我希望我的加载程序接收一个配置对象(存储在JSON文件中)并从该配置生成源代码,该配置不再是有效的JSON,而是JavaScript(随后可以通过babel加载程序提供)

这里有一个非常愚蠢、人为的例子。源文件是一个JSON文件,但我希望加载程序的输出是一些JS

装载机 网页包配置 相反,我最终得到了以下错误:

ERROR in ./config.json
Module parse failed: Unexpected token ' in JSON at position 0
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token ' in JSON at position 0
  at JSON.parse (<anonymous>)
  at JsonParser.parse (.../node_modules/webpack/lib/JsonParser.js:15:21)
./config.json中的
错误
模块分析失败:JSON中位置0处出现意外标记“”
您可能需要适当的加载程序来处理此文件类型。
SyntaxError:JSON中位置0处出现意外标记“”
在JSON.parse()处
在JsonParser.parse(…/node_modules/webpack/lib/JsonParser.js:15:21)

从堆栈跟踪中可以看到,它来自
webpack/lib/JsonParser.js
。我怎么能告诉Webpack一开始不要运行内置的JSON解析器,而是将符合此规则的JSON文件的处理委托给我的加载程序呢?

我想我已经找到了答案,尽管它似乎是一个未记录的功能(至少,我在Web上找不到它)

看起来您可以在规则对象中传递的属性之一是
type
。通过将其设置为
javascript/auto
,您可以覆盖默认的JSON解析器,并让它将文件源解析为javascript

此属性位于用于验证配置对象的Web包中

rules: [
  {
    test: /\.json$/,
    use: [
      'babel-loader',
      'my-loader',
    ],
    type: 'javascript/auto',
  },
],

使用
const config=require('./config.json')怎么样
?这里的目标是在构建时将json编译成可执行的JS,因为目前应用程序只是将json对象嵌入到应用程序包中,并在运行时执行这项工作。由于这是我们应用程序中的一项资源密集型任务,而且json是常量,我们希望编译json目录ectly进入可执行代码检查此选项,希望它能有所帮助(如果可行,请自行创建/确认答案)
ERROR in ./config.json
Module parse failed: Unexpected token ' in JSON at position 0
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token ' in JSON at position 0
  at JSON.parse (<anonymous>)
  at JsonParser.parse (.../node_modules/webpack/lib/JsonParser.js:15:21)
rules: [
  {
    test: /\.json$/,
    use: [
      'babel-loader',
      'my-loader',
    ],
    type: 'javascript/auto',
  },
],