web-dev-qa-db-fra.com

Comment ajouter un fichier js avec webpack?

Je lisais ce tutoriel webpack:

https://webpack.github.io/docs/usage.html

Il dit qu'il regroupe les fichiers src et node_modules. Si je veux y ajouter un autre fichier .js, comment faire? Il s'agit d'un fichier thirdpartyjs qui ne fait pas partie de la source et ne fait pas partie des fichiers node_modules. Voici mon webpack.config.js actuel:

var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: [
        'react-hot-loader/patch',
        'webpack-dev-server/client?http://localhost:8080',
        'webpack/hot/only-dev-server',
        './app/app.js'
    ],
    output: {
        path: path.resolve(__dirname, "dist"),
        publicPath: "/dist/",
        filename: "dist.js",
        sourceMapFilename: "dist.map"
    },
    devtool: 'source-map',
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new webpack.DefinePlugin({
            'process.env': {
                'NODE_ENV': JSON.stringify('development')
            }
        }),
    ],
    module: {
        loaders: [{
            loader: 'babel',
            exclude: /node_modules/
        }]
    },
    devServer: {
        inline: true
    },
    node: {
        fs: "empty"
    },
    watch: false
}
13
bier hier

En réponse à la réponse de Dmitry:

  • ajoutez le chemin du fichier à la liste des entrées avant app.js

Cela a pour effet que vous obtiendrez un fichier .js groupé pour chaque point d'entrée, ce que vous pourriez ne pas vouloir.

  • nécessite ce fichier depuis app.js

Vous n'avez peut-être pas accès à app.js s'il est écrit dynamiquement, ou pour une raison quelconque, vous pourriez ne pas vouloir modifier app.js.

Une autre option:

Vous pouvez utiliser webpack-inject-plugin pour injecter tout code JS sous forme de chaîne dans le bundle .js résultant créé par webpack. De cette façon, vous pouvez lire le fichier que vous souhaitez injecter sous forme de chaîne (par exemple fs.readFile dans nodejs) et l'injecter avec le plugin.

0
Jose P. V.