如何在构建时使用注释在另一个 javascript 中插入一个 javascript 文件

How to insert a javascript file in another javascript at build time using comments

npm 或 VS Code 或任何可以根据评论捆绑或连接 Javascript 文件的东西,例如:

function myBigLibrary(){
    //@include util.js
    //@include init.js

    function privateFunc(){...}

    function publicFunc(){
      //@include somethingElse.js
      ...
    }

    
    
    return {
        init, publicFunc, etc
    }
}

或者类似的东西?我认为当您的 javascript 文件变得非常大时,这种情况很常见。我能找到的都是webpack之类的复杂东西

我正在寻找任何等效的解决方案,允许您在其他代码的任意位置包含任意代码。我想这会给智能感知带来麻烦,但扩展可以解决这个问题。

我不确定你的真正意思,但如果你的意思是链接来自其他 javascript 文件的变量。可能这会帮助你
const { variable name } = require(the javascript file path)
示例:
在 index.js

const { blue } = require('./../js/blue.js)
console.log(blue)


同时在 blue.js

const blue = "dumbass"

如果这对你没有帮助就忽略这个

所以这是实现我想要的东西的简单方法。我一直在学习更多有关如何使用 esbuild 或其他捆绑器执行操作的信息,但我并没有完全找到适合我需要的东西。而且这样更简单、更灵活。它适用于任何文件类型。您可以在文件更改时使用 nodemon 而不是 node 进行自动更新 运行 此代码。

const fs = require('fs')
/////////////////////////

const input  = 'example.js'
const output = 'output.js'

const ext    = '.js'

// looks for file with optional directory as: //== dir/file
const regex  = /\/\/== *([\w-\/]+)/g


const fileContent = fs.readFileSync(input).toString()


// replace the comment references with the corresponding file content
const replacement = fileContent.replace(regex, (match, group)=>{

    const comment = '//////// '+group+ext+' ////////\n\n'
    const replace = fs.readFileSync(group+ext).toString()
    return comment + replace

})

// write replacement to a file
fs.writeFileSync(output, replacement)