javascript - 在 Webpack 中从外部文件添加许可证 header

标签 javascript requirejs webpack

我有一个名为“LICENSE”的外部许可证文件,并且 webpack.BannerPlugin .我可以将 LICENSE 的内容复制/粘贴到 BannerPlugin 的字符串字段中;。但它又大又丑。

如果我可以改用文本或原始加载器,那就更干净了:BannerPlugin(require("raw!./LICENSE"))

当我尝试这个时,我得到 “错误:找不到模块 'raw!./LICENSE'”,大概是因为 require 没有足够早地配置。有没有办法做我正在尝试的事情?我进行了相当多的搜索,并不断返回将整个许可证字符串放入 BannerPlugin conf 中。

编辑:添加我的基本 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
    })
  ]
};

最佳答案

@zerkms 提供了答案:使用 nodejs 的 FS api。通过将 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
    })
  ]
};

关于javascript - 在 Webpack 中从外部文件添加许可证 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34846509/

相关文章:

javascript - 当 BackboneJS 中的initialize() 获取时,如何在 render() 中引用集合的数据?

asynchronous - 让用户在加载后使用已编译的 RequireJS Widget

javascript - 尝试使用我的收藏时获取 "undefined is not a function"

webpack - 配置 Jest 模仿 webpack 解析 root 和解析别名

webpack - Babel + WebPack : class properties can't be compiled

php - 通过ajax表单发送id

javascript - JS for -loop 总是使用最后一个元素 - 范围问题

javascript - 函数内的回溯函数

JavaScript 和 Cookie

webpack - 根据开发/生产模式切换 webpack source map