gpt4 book ai didi

javascript - 如何将javascript文件输出到 'static/js'目录并将css文件输出到 'static/css'目录

转载 作者:行者123 更新时间:2023-12-02 23:12:03 27 4
gpt4 key购买 nike

这是我的webpack.prod.config.js代码

const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const webpack = require('webpack');
const dotenv = require('dotenv').config({path: path.join(__dirname, '.env')});
const HWP = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const TerserJSPlugin = require('terser-webpack-plugin');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');

module.exports = {
mode: 'production',
entry: path.join(__dirname, '/src/index.jsx'),
resolve: {
extensions: ['.js', '.jsx']
},
module: {
rules:[
{
test: /\.jsx$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, 'css-loader'],
},
{
test: /\.scss$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
importLoaders: 1,
modules: true,
localIdentName: "[name]__[local]___[hash:base64:5]"
},
},
"sass-loader"
]
}
]
},
plugins: [
new CleanWebpackPlugin(),
new webpack.DefinePlugin({
'process.env': JSON.stringify(dotenv.parsed)
}),
new MiniCssExtractPlugin({
filename: '[name].[contenthash].css',
chunkFilename: '[id].[contenthash].css',
}),
new HWP({
template: path.join(__dirname,'/src/index.html'),
minify: {
collapseWhitespace: true
}
})
],
optimization: {
minimizer: [
new TerserJSPlugin({}),
new OptimizeCssAssetsPlugin({})
]
},
output: {
filename: 'build.[contenthash].js',
path: path.join(__dirname, '/dist'),
publicPath: '/'
}
};

这是我的 yarn 脚本

"scripts": {
"start": "webpack-dev-server --config webpack.dev.config.js",
"build": "webpack --config webpack.prod.config.js",
},
<小时/>

运行yarn build后,dist文件夹结构如下所示:

dist
├── build.c8bf456f14ce9fd024e4.js
├── 0.build.c42e9b89038bc14ee0d4.js
├── 1.build.155be64c26ba718adc27.js
├── main.58bf75b767e0f1d8310f.css
├── 0.c760db0e4330f75ffd4e.css
├── 1.68f70729629baaa5f35b.css
└── index.html

但我想将所有 css 文件放入 static/css 目录中,并将所有 javascript 文件放入 static/js 目录中。当然,static/css 目录和 static/js 目录都应该位于 dist 文件夹内。使 dist 文件夹结构如下所示:

dist
├── static
│ ├── js
│ │ ├── build.c8bf456f14ce9fd024e4.js
│ │ ├── 0.build.c42e9b89038bc14ee0d4.js
│ │ └── 1.build.155be64c26ba718adc27.js
│ ├── css
│ │ ├── main.58bf75b767e0f1d8310f.css
│ │ ├── 0.c760db0e4330f75ffd4e.css
│ └── └── 1.68f70729629baaa5f35b.css
└── index.html

当然,index.html 文件应该具有主 javascript 文件的正确路径和主 css 文件的正确路径。因此,如果主 javascript 文件的名称是 build.c8bf456f14ce9fd024e4.js 并且主 css 文件的名称是 main.58bf75b767e0f1d8310f.cssindex.html 中的代码 文件应该是这样的

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>APP TITLE</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/static/css/main.58bf75b767e0f1d8310f.css" rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="text/javascript" src="/static/js/build.c8bf456f14ce9fd024e4.js"></script>
</body>
</html>

最佳答案

这可能会有帮助,但我在您的配置中没有看到 js 文件的 block ?

new MiniCssExtractPlugin({
filename: 'css/[name].[contenthash].css',
chunkFilename: 'css/[id].[contenthash].css',
}),

output: {
filename: 'js/build.[contenthash].js',
path: path.join(__dirname, '/dist'),
chunkFilename: 'js/[name].[contenthash].js', // ?
publicPath: '/'
}

关于javascript - 如何将javascript文件输出到 'static/js'目录并将css文件输出到 'static/css'目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57315749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com