首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据节点模块从JavaScript文件创建构建?

如何根据节点模块从JavaScript文件创建构建?
EN

Stack Overflow用户
提问于 2022-03-22 21:55:20
回答 2查看 1K关注 0票数 2

我创建了一个新的节点项目

代码语言:javascript
复制
npm init
npm install apollo-server

然后,我使用以下代码添加了一个index.js文件:

代码语言:javascript
复制
const { ApolloServer, gql } = require('apollo-server');

const typeDefs = gql`
  type Query {
    hello: String
  }
`;

const server = new ApolloServer({
  typeDefs,
  mocks: true,
});

server.listen().then(({ url }) => {
  console.log(` Server ready at ${url}`)
});

虽然我可以使用node index.js来运行这个程序,但是我如何才能从我的index.js中创建一个构建,这样它在运行时就不直接需要模块了?(目标:在像render.com这样的平台上部署它)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-25 06:44:22

听起来,您想要创建一个不需要服务器端配置或安装即可运行的单个可执行工件。

这方面有几个选择。您可能正在寻找一个Javascript,比如卷起包裹Webpack。Webpack是应用最广泛的,也是一般最难配置的。

使用打包机

包裹

使用npm i -g parcel安装包,然后将其添加到您的package.json中:

代码语言:javascript
复制
  "main": "dist/index.js",
  "targets": {
    "main": {
      "includeNodeModules": true
    },
  },

然后运行parcel build index.js。就这样!

我添加了一个简单的基于GitHub的演示

Webpack

有许多关于这个问题有很好的答案

邦德勒警告

许多节点包都随二进制/本机加载项一起提供。例如,柏树下载并安装浏览器。任何使用本机加载项的包都不能使用绑定程序,因为绑定程序无法添加二进制文件。这些软件包仍需安装。

另一种选择:构建二进制文件

在上面的过程中,输出工件是一个Javascript文件。与Javascript文件不同,您还可以生成一个二进制文件,从而减少安装Node运行时的需要。请查看pkg以完成此操作。虽然pkg是一个相当成熟的产品,但通常仍然认为这是一种实验技术,因此可能不适合于生产环境。另一方面,您不应该在包含本机插件的包中遇到任何问题。阅读文档,看看它是否适合您的用例。

票数 2
EN

Stack Overflow用户

发布于 2022-03-25 06:55:25

https://github.com/vercel/ncc这可能会有帮助。它在最终的工件中包括了node_modules

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71579398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档