我正在构建一个React应用程序,我想将源目标中的所有图像文件复制到构建目标中。我正在遵循一些教程,并成功使用了react-app-rewired
和CopyWebpackPlugin
我没有收到任何错误消息,也没有复制任何文件。
这是我的config-overrides.js
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = function override(config, env) {
if (!config.plugins) {
config.plugins = [];
}
config.plugins.push(
new CopyWebpackPlugin(
[
{
from: 'src/images',
to: 'public/images'
}
])
);
return config;
};
这是我的package.json
{
"name": "public",
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^0.18.0",
"copy-webpack-plugin": "^4.5.2",
"css-loader": "^1.0.0",
"prop-types": "^15.6.2",
"react": "^16.4.2",
"react-app-rewired": "^1.5.2",
"react-axios": "^2.0.0",
"react-dom": "^16.4.2",
"react-router-dom": "^4.3.1",
"react-scripts": "1.1.4",
"react-slick": "^0.23.1",
"slick-carousel": "^1.8.1",
"typeface-montserrat": "0.0.54",
"webfontloader": "^1.6.28"
},
"scripts": {
"build-css": "node-sass-chokidar src/ -o src/",
"watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive",
"start-js": "react-app-rewired start",
"start": "npm-run-all -p watch-css start-js",
"build-js": "react-app-rewired build",
"build": "npm-run-all build-css build-js",
"test": "react-app-rewired test --env=jsdom",
"eject": "react-scripts eject"
},
"devDependencies": {
"npm-run-all": "^4.1.3",
"style-loader": "^0.22.1"
}
}
我的文件夹结构是:
src/images
src/images/file.jpg
src/images/slider/1.png
src/images/slider/2.png
public/images(目前为空)
build
中添加脚本吗?2. 你是使用CRA还是react-app-rewired?问题标题说是CRA,但代码中写的是react-app-rewired
。3. CRA默认应该将所有图像放在build/static/media
中,这个路径对你不起作用吗? - dubesimport image1 from './component/file.jpg'
才能使其正常工作,并且它会压缩并附加一个随机名称。 - TheBlackBenzKidcreate-react-app
项目弹出后,处理类似这样的配置特性会更加容易,因此这可能是最好的方法。create-react-app
仅旨在作为起点,而不是React项目在其整个生命周期中的规范配置。 - nnyby