2016-01-18 2 views
4

У меня есть файл внешней лицензии, называемый «LICENSE», и веб-пакет.BannerPlugin. Я мог бы скопировать/вставить содержимое LICENSE в поле строки для BannerPlugin ;. Но он большой и уродливый.Добавление заголовка лицензии из внешнего файла в Webpack

Было бы гораздо чище, если бы я мог бы использовать текст или необработанный загрузчик вместо: BannerPlugin(require("raw!./LICENSE"))

Когда я пытаюсь это я получаю "Error: Cannot find module 'raw!./LICENSE'", предположительно потому, что требует не был настроен достаточно рано. Есть ли способ сделать то, что я пытаюсь? Я искал довольно много и продолжаю возвращаться, чтобы положить всю строку лицензии в BannerPlugin conf.

Edit: добавлять мой основной файл webpack.config:

// webpack.config.js 
var webpack = require("webpack"); 
var ExtractTextPlugin = require("extract-text-webpack-plugin"); 
var HtmlWebpackPlugin = require('html-webpack-plugin'); 

module.exports = { 
    entry: "./dev/main.js", 
    devtools: "source-map", 
    output: { 
    path: "./bin", 
    filename: "[name].js" 
    }, 
    module: { 
    loaders: [ 
     { 
     test: /\.css$/, 
     loader: ExtractTextPlugin.extract("style-loader", "css-loader") 
     } 
    ] 
    }, 
    plugins: [ 
    new ExtractTextPlugin("bundle.css"), 
    new webpack.BannerPlugin("Copyright 2016 Adam Mooz. Released under the MIT license"), 
    new webpack.optimize.UglifyJsPlugin({ 
     minimize: true 
    }), 
    new HtmlWebpackPlugin({ 
     title: "Grocery List", 
     hash: true 
    }) 
    ] 
}; 
+0

могли бы вы поставить свой конфигурационный файл WebPack тоже? – jkris

+0

Конечно, извините. Я только что обновил главный вопрос. –

+0

, поэтому вы попытались «потребовать (« raw! ./ LICENSE »)' в файле конфигурации? – jkris

ответ

5

@zerkms дает ответ: использовать nodejs FS игровой апи. Используя задающие фс быть var fs = require("fs");, я был в состоянии использовать тогда fs.readFileSync прочитать файл в webpack.BannerPlugin(fs.readFileSync('./LICENSE', 'utf8'))

Мой новый файл wepack выглядит следующим образом:.

// webpack.config.js 
var webpack = require("webpack"); 
var ExtractTextPlugin = require("extract-text-webpack-plugin"); 
var HtmlWebpackPlugin = require('html-webpack-plugin'); 
var fs = require("fs"); 

module.exports = { 
    entry: "./dev/main.js", 
    devtools: "source-map", 
    output: { 
    path: "./bin", 
    filename: "[name].js" 
    }, 
    module: { 
    loaders: [ 
     { 
     test: /\.css$/, 
     loader: ExtractTextPlugin.extract("style-loader", "css-loader") 
     } 
    ] 
    }, 
    plugins: [ 
    new ExtractTextPlugin("bundle.css"), 
    new webpack.BannerPlugin(fs.readFileSync('./LICENSE', 'utf8')), 
    new webpack.optimize.UglifyJsPlugin({ 
     minimize: true 
    }), 
    new HtmlWebpackPlugin({ 
     title: "Grocery List", 
     hash: true 
    }) 
    ] 
}; 
Смежные вопросы