javascript - 如何使用 webpack bundle javascript 文件/Jquery 文件?

标签 javascript node.js webpack bundle

我能够使用 webpack 成功地 bundle 我的 sass 文件,但我在打包我的 javascript 文件时遇到了问题。我在 css 上做的方式是入口点是 ./public/javascript/index.js 其中包含 import '../sass/main.scss';然后 main.scss 包含类似 @import "layout/header"的内容;还有更多。问题是我将如何打包 javascript 文件?

例如我有我的javascript文件 \public\js\--> js 文件,如 test.js 等。

我在下面提供了我的 webpack 配置。

我的 webpack 配置

const javascript = {
    test: /\.(js)$/,
    use: {
        loader: 'babel-loader',
        options: {
            presets: ['@babel/env']
        }
    }
}

const images = {
    test: /\.(jpg|jpeg|png|gif)$/,
    use: {
        loader: 'file-loader',
        options: {
            outputPath: '../images/'
        }
    }
}

const postcss = {
    loader: 'postcss-loader',
    options: {
        plugins() { return [ autoprefixer({ browsers: 'last 5 versions' }) ]; }
    }
}

const styles = {
    test: /\.scss$/,
    use: [
        'style-loader',
        MiniCssExtractPlugin.loader,
        'css-loader',
        postcss,
        'sass-loader'
    ]
}

const config = {
    watch: true,
    watchOptions: {
        poll: true,
        ignored: /node_modules/
    },
    entry: './public/javascript/index.js',
    output: {
        path: path.resolve(__dirname, 'public', 'dist'),
        filename: 'main.js'
    },
    module: {
        rules: [
            javascript,
            images,
            styles
        ]
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename: 'style.bundle.css'
        }),
        new OptimizeCssAssetsPlugin({
            assetNameRegExp: /\.css$/g,
            cssProcessor: require('cssnano'),
            cssProcessorOptions: { preset: 'default', discardComments: { removeAll: true } },
            canPrint: true
        })
    ]
}

最佳答案

从最简单的解释来看,Webpack 是一个 javascript 打包器。有插件支持其他 Assets ,如 css,但 webpack hello world 会为你 bundle 你的 javascript。

通过定义一个入口点,您要求 webpack 遍历您使用 import/require 语句创建的模块依赖关系树,并将它沿途找到的脚本打包到一个输出文件中。

如果您要在 ./public/javascript 中创建一个名为“foo.js”的文件并在您的 index.js 文件中添加一个 import "./foo";,您会看到在运行你的 webpack 构建之后,你添加到 foo.js 的任何代码都会出现在你的 main.js 中

关于javascript - 如何使用 webpack bundle javascript 文件/Jquery 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58516593/

相关文章:

Node.js - 抛出新错误 ("Cannot find module ' "+ request + "' ");

reactjs - 使用 ES6 时,导入的函数如何在一个文件中未定义,而在另一个文件中则不然?

javascript - 页面内容仅在硬刷新后显示,不在重定向时显示

javascript - 如何使用jQuery选择叶节点 :contains selector?

node.js - NodeRedis client.multi() hgetall 性能

Webpack 包文件放在项目文件夹外

typescript - 如何使用 webpack 捆绑 puppeteer 进行生产部署?

JavaScript 下拉菜单

javascript - 直接下载文件,而不是从 window.open(url)

c++ - ToCString 的 header 在哪里,或者如何将参数转换为 cstrings?