webpack - 在不捆绑的情况下编译 1 个 ts 文件(2 个条目)

Posted

技术标签:

【中文标题】webpack - 在不捆绑的情况下编译 1 个 ts 文件(2 个条目)【英文标题】:webpack - transpile 1 ts file without bundling it (2 entries) 【发布时间】:2020-07-20 01:14:09 【问题描述】:

TL;DR

(vue 文件)+ background.ts => ...[webpack]... =>(捆绑的 vue 文件)+ background.js

无法执行 background.js

预计 background.js 仅包含“console.log('test');”


我有一个带有 webpack 和 typescript 的 vue 项目。

除了 [vue JS 相关文件],我希望我的构建步骤生成一个“background.js”文件。

我在 typescript 中有一个源文件:“background.ts”。

通过 vue.config.js 我添加了一个 webpack 条目“背景”。

它确实按照我的预期构建了一个文件“background.js”

但它是捆绑的(我认为),它不能由 chrome 插件执行。

现在我只想拥有一个执行“console.log('test');”的“background.js”文件调用脚本时包含的指令。

谢谢,webpack 是地狱


编辑:添加文件:

// vue.config.js
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = 
    filenameHashing: false,
    chainWebpack: config => 
        // add your custom entry point
        config
            .entry('background')
            .add('./src/background.ts');
    ,
    configureWebpack: 
        plugins: [
            new CopyWebpackPlugin([
                 from: 'manifest.json', to: 'manifest.json', flatten: true ,
            ]),
        ]
    


“$vue 检查”的内容 $vue 检查 > https://pastebin.com/6F3zwLhC


我尝试了什么:

导出一个函数而不是我的纯代码:

export default function() 
    console.log("gboDebug: background.ts dans export function");

// 而不仅仅是

console.log("gboDebug: background.ts dans export function");

在文件末尾添加这个,因为我在某处看到它:

   export default null;

检查了我的 console.log 是否在 background.js 捆绑文件中

将 background.js 的结果粘贴到导航器中 使用脚本创建的 webpackJsonp 全局变量

我的想法:

有一个 npm 脚本,它 1-bundle-vue-webpack 然后用 babel-loader 2-transpile 我的文件 在 webpack 中使用库输出选项,但我认为它使代码可用于变量中,加载时不会自动执行代码 IIFE 中的 webpack 输出:https://webpack.js.org/configuration/output/#outputiife

【问题讨论】:

如果您可以添加 webpack 配置代码本身会更有帮助 @GiorgiLagidze 谢谢vm的回答,我在这里添加了vue生成的webpack配置代码pastebin.com/6F3zwLhC Vue 我们应该构建一个 Web 应用程序,它使用捆绑器 - Webpack。您想要的是构建一个 Web 应用程序并将其作为扩展程序运行,因此您需要将构建应用程序和构建扩展文件分开。你不需要 webpack 来处理background.ts,你可以简单地使用 ts 编译器 (tsc) 来处理。 请查看this question,看来 vue 生态系统可能已经为您的情况提供了解决方案 为什么要和巨龙战斗?我会简单地运行tsc 来单独转换background.ts 【参考方案1】:

简而言之——你不需要打包器来转换单个打字稿文件。只需使用tsc

特别是对于将 Vue 应用程序用作 chrome 扩展程序的一部分的这个问题,将构建应用程序和扩展程序相关文件分开可能是有意义的。

另一种可能的选择是使用Vue CLI Browser Extension Plugin 之类的东西。

【讨论】:

以上是关于webpack - 在不捆绑的情况下编译 1 个 ts 文件(2 个条目)的主要内容,如果未能解决你的问题,请参考以下文章

PCRE 在不支持 UTF 的情况下编译

xcode 5 - 在不包含文件的情况下编译源代码

如何在不安装 IDE 的情况下编译和运行此 Delphi 代码?

webpack 可以在不需要或导入的情况下捆绑 js 文件吗? Q2:为啥需要图表?

在没有 sse 的情况下编译 OpenCV 以在 ROS 中使用

Winform下编译Dev控件时提示license.licx文件错误