在 webpack 中使用导入内联单个 javascript 文件

Inline a single javascript file with imports in webpack

我需要在 index.html 中插入一点 javascript。 js本质上是:

import smallFunction from './smallFunction';
const name = smallFunction();
document.querySelector('#id').setAttribute('href', `/path/${name}.${__webpack_hash__}.css`);

我将 webpack 4 与 HtmlWebpackPlugin 和 webpack.ExtendedAPIPlugin 一起使用。使用 HtmlWebpackInlineSourcePlugin 时,它会内联我的整个 js 包:

inlineSource: '.js$'

或不使用以下任何一项内联任何内容:

inlineSource: 'myFile.js$'

inlineSource: './path/myFile.js$'

我也试过从我的 javascript 入口点引用文件以确保 webpack 知道它们,但这并没有什么不同。

是否可以使用 webpack 仅内联一个 javascript 文件(包括导入)?

将 myFile 作为附加入口点是可能的。

这允许 inlineSource 检测到它,并允许您使用当前的加载器堆栈(例如 babel 转译)。

注意inlineSource是字符串形式的正则表达式。

// Entry points
entry: {
  main: './src/main.js',
  // Separate entry point for inlined js
  injectCss: './src/js/injectBrandCss.js'
}

// HtmlWebpackPlugin options
inlineSource: 'myFile.*\.js$'

请注意,由于缩小,您可能无法调用任何内联函数。