Laravel Mix 和 Webpack:无法加载 JSON 文件(Webpack 添加 .js 到文件名)
Laravel Mix and Webpack: Cannot Load JSON File (Webpack Adding .js to Filename)
我从 Webpack 收到以下错误:
ERROR in ./resources/assets/js/data/vehicles.json.js
Module build failed: Error: ENOENT: no such file or directory, open '/Users/path-to-my-app/resources/assets/js/data/vehicles.json.js'
我对文件加载失败并不感到惊讶。 JSON 文件不叫 vehicles.json.js
。它被称为vehicles.json
。
导入文件的行是:
import vehicleTypes from '../data/vehicles.json'
但是,如果我将文件名更改为 vehicles.js
(并使用导出语句使其成为一个模块)并将导入语句更改为:
import vehicleTypes from '../data/vehicles.js'
Webpack 工作正常。
我的印象是最新的 webpack 可以在不配置任何东西的情况下加载 JSON 个文件。
Since webpack >= v2.0.0, importing of JSON files will work by default. You might still want to use this if you use a custom file extension.
您可能使用的是旧版本的 webpack,这可以解释原因
默认情况下加载器不工作。
尝试将其作为自定义加载器添加到您的 webpack.mix.js 文件中。
安装加载程序:
npm install --save-dev json-loader
并声明自定义加载器:
mix.webpackConfig({
module: {
loaders: [{
test: /\.json$/,
loader: 'json-loader'
}]
}
});
而且您应该能够像预期的那样导入 .json 文件。
我从 Webpack 收到以下错误:
ERROR in ./resources/assets/js/data/vehicles.json.js
Module build failed: Error: ENOENT: no such file or directory, open '/Users/path-to-my-app/resources/assets/js/data/vehicles.json.js'
我对文件加载失败并不感到惊讶。 JSON 文件不叫 vehicles.json.js
。它被称为vehicles.json
。
导入文件的行是:
import vehicleTypes from '../data/vehicles.json'
但是,如果我将文件名更改为 vehicles.js
(并使用导出语句使其成为一个模块)并将导入语句更改为:
import vehicleTypes from '../data/vehicles.js'
Webpack 工作正常。
我的印象是最新的 webpack 可以在不配置任何东西的情况下加载 JSON 个文件。
Since webpack >= v2.0.0, importing of JSON files will work by default. You might still want to use this if you use a custom file extension.
您可能使用的是旧版本的 webpack,这可以解释原因 默认情况下加载器不工作。
尝试将其作为自定义加载器添加到您的 webpack.mix.js 文件中。
安装加载程序:
npm install --save-dev json-loader
并声明自定义加载器:
mix.webpackConfig({
module: {
loaders: [{
test: /\.json$/,
loader: 'json-loader'
}]
}
});
而且您应该能够像预期的那样导入 .json 文件。