部署 Aurelia/Node 应用程序时需要什么?
What's necessary when deploying an Aurelia/Node application?
我已经构建了一个 Aurelia 应用程序,但我不确定需要将什么推送到生产服务器。我已经阅读了有关 Node 的内容,并且开始更加了解它。如果我们只是推送 dist 文件夹(捆绑文件夹)、index.html 和 package.json,服务器会自动使用 json 文件来拉下适当的包吗?还是我们必须 运行 npm install 在服务器的 CLI 上才能下载这些包?如果我们必须这样做,那么我假设我们必须对 jspm 做同样的事情。
此外,除了 json 文件,我们是否需要将 config.js 推送到生产环境?
编辑
我只是 运行 gulp 导出,它生成一个包含以下内容的导出文件夹:
- dist 文件夹
- jspm_packages 文件夹
- config.js
- index.html
- favicon.ico
我复制了所有这些文件并将它们投入生产。第一个错误我在 main.js
上收到 404
这是我的 bundles.js 文件
module.exports = {
"bundles": {
"dist/app-build": {
"includes": [
"[**/*.js]",
"**/*.html!text",
"**/*.css!text"
],
"options": {
"inject": true,
"minify": true,
"depCache": true,
"rev": false
}
},
"dist/aurelia": {
"includes": [
"aurelia-framework",
"aurelia-bootstrapper",
"aurelia-fetch-client",
"aurelia-router",
"aurelia-animator-css",
"aurelia-templating-binding",
"aurelia-polyfills",
"aurelia-templating-resources",
"aurelia-templating-router",
"aurelia-loader-default",
"aurelia-history-browser",
"aurelia-logging-console",
"bootstrap",
"bootstrap/css/bootstrap.css!text",
"fetch",
"jquery"
],
"options": {
"inject": true,
"minify": true,
"depCache": false,
"rev": false
}
}
}
};
我很困惑为什么它没有加载我的进度条。我在搜索 appName/jspm_packages/github/rstacruz-nprogress 时收到 404。为什么它不自动将其配置为 bundled/exported?如何将其修复到自动包含我引入的所有库的位置?
运行 命令 gulp export
。它将捆绑应用程序并将必要的文件(index.html、config.js 等)复制到 export
文件夹。然后,只需将导出文件夹复制到服务器即可。生产中不需要安装包。
编辑
当您安装一个软件包时,例如 nprogress,您必须将它包含到其中一个捆绑文件中。捆绑包在 build/bundles.js
中配置。 aurelia 导航骨架带有 2 个配置包,一个用于 aurelia 库,一个用于应用程序的其余部分。如果需要,您还可以创建更多捆绑包。要将包添加到捆绑文件中,只需将其名称添加到特定数组中,例如:
//...
"dist/aurelia": {
"includes": [
"aurelia-framework",
"aurelia-bootstrapper",
"aurelia-fetch-client",
"aurelia-router",
"aurelia-animator-css",
"aurelia-templating-binding",
"aurelia-polyfills",
"aurelia-templating-resources",
"aurelia-templating-router",
"aurelia-loader-default",
"aurelia-history-browser",
"aurelia-logging-console",
"bootstrap",
"bootstrap/css/bootstrap.css!text",
"fetch",
"jquery",
"nprogress"
],
//...
在上面的示例中,我将 nprogress
添加到 aurelia
包中。您可以将其添加到 app-build
捆绑包中,甚至可以为 nprogress 创建另一个捆绑包。
现在,当您 运行 gulp export
时,nprogress 将被捆绑到 aurelia-######.js 文件中,并且可以在生产环境中使用。
我已经构建了一个 Aurelia 应用程序,但我不确定需要将什么推送到生产服务器。我已经阅读了有关 Node 的内容,并且开始更加了解它。如果我们只是推送 dist 文件夹(捆绑文件夹)、index.html 和 package.json,服务器会自动使用 json 文件来拉下适当的包吗?还是我们必须 运行 npm install 在服务器的 CLI 上才能下载这些包?如果我们必须这样做,那么我假设我们必须对 jspm 做同样的事情。
此外,除了 json 文件,我们是否需要将 config.js 推送到生产环境?
编辑
我只是 运行 gulp 导出,它生成一个包含以下内容的导出文件夹:
- dist 文件夹
- jspm_packages 文件夹
- config.js
- index.html
- favicon.ico
我复制了所有这些文件并将它们投入生产。第一个错误我在 main.js
上收到 404这是我的 bundles.js 文件
module.exports = {
"bundles": {
"dist/app-build": {
"includes": [
"[**/*.js]",
"**/*.html!text",
"**/*.css!text"
],
"options": {
"inject": true,
"minify": true,
"depCache": true,
"rev": false
}
},
"dist/aurelia": {
"includes": [
"aurelia-framework",
"aurelia-bootstrapper",
"aurelia-fetch-client",
"aurelia-router",
"aurelia-animator-css",
"aurelia-templating-binding",
"aurelia-polyfills",
"aurelia-templating-resources",
"aurelia-templating-router",
"aurelia-loader-default",
"aurelia-history-browser",
"aurelia-logging-console",
"bootstrap",
"bootstrap/css/bootstrap.css!text",
"fetch",
"jquery"
],
"options": {
"inject": true,
"minify": true,
"depCache": false,
"rev": false
}
}
}
};
我很困惑为什么它没有加载我的进度条。我在搜索 appName/jspm_packages/github/rstacruz-nprogress 时收到 404。为什么它不自动将其配置为 bundled/exported?如何将其修复到自动包含我引入的所有库的位置?
运行 命令 gulp export
。它将捆绑应用程序并将必要的文件(index.html、config.js 等)复制到 export
文件夹。然后,只需将导出文件夹复制到服务器即可。生产中不需要安装包。
编辑
当您安装一个软件包时,例如 nprogress,您必须将它包含到其中一个捆绑文件中。捆绑包在 build/bundles.js
中配置。 aurelia 导航骨架带有 2 个配置包,一个用于 aurelia 库,一个用于应用程序的其余部分。如果需要,您还可以创建更多捆绑包。要将包添加到捆绑文件中,只需将其名称添加到特定数组中,例如:
//...
"dist/aurelia": {
"includes": [
"aurelia-framework",
"aurelia-bootstrapper",
"aurelia-fetch-client",
"aurelia-router",
"aurelia-animator-css",
"aurelia-templating-binding",
"aurelia-polyfills",
"aurelia-templating-resources",
"aurelia-templating-router",
"aurelia-loader-default",
"aurelia-history-browser",
"aurelia-logging-console",
"bootstrap",
"bootstrap/css/bootstrap.css!text",
"fetch",
"jquery",
"nprogress"
],
//...
在上面的示例中,我将 nprogress
添加到 aurelia
包中。您可以将其添加到 app-build
捆绑包中,甚至可以为 nprogress 创建另一个捆绑包。
现在,当您 运行 gulp export
时,nprogress 将被捆绑到 aurelia-######.js 文件中,并且可以在生产环境中使用。