gpt4 book ai didi

angular - 如何在不使用 CLI 的情况下部署 Angular2 项目

转载 作者:太空狗 更新时间:2023-10-29 17:10:15 25 4
gpt4 key购买 nike

这是我为 Angular 2 中的项目制作的文件夹结构。我删除了 Node-Module 文件夹和其他文件夹,以便将其放置在这里。对于造型,我只使用了 Bootstrap。我没有使用过 Angular-CLI。谁能指导我如何部署它?我应该使用 gulp 吗?我的步骤应该是什么。我在 stackoverflow 上浏览了很多答案,但都是使用 GULP 和 CLI。是否必须同时使用,如果是请指导如何实现部署。可悲的是,在 Anular2 官方网站上没有提到部署。欢迎任何帮助、指导和建议。

|--app
| |-- logo.png
| |-- components
| | |-- main.component.ts
| | |-- config.component.ts
| | |-- download-resources.component.ts
| | |-- header-footer.component.ts
| | |-- licence.component.ts
| | |-- menu-bar.component.ts
| | |-- process-status.component.ts
| | |-- release-history.component.ts
| | |-- upload-release.component.ts
| | `-- version.component.ts
| |-- main
| | `--module.ts
| |-- main.ts
| |-- models
| | |-- config.model.ts
| | |-- meta-info.model.ts
| | |-- process-status.model.ts
| | `-- version.model.ts
| |-- services
| | |-- cc-info.service.ts
| | |-- config.service.ts
| | |-- release-history.service.ts
| | |-- shared.service.ts
| | |-- upload-release.service.ts
| | `-- version.service.ts
| `-- template
| |-- download-resources.component.html
| |-- licence.component.html
| |-- license-info.component.html
| |-- machines.component.html
| |-- menu-bar.component.html
| |-- process-status.component.html
| |-- release-history.component.html
| |-- topology-info.component.html
| |-- topology-upload.template.html
| |-- upload-release.component.html
| `-- version.component.html
|-- index.html
|-- package.json
|-- styles.css
|-- systemjs.config.js
|-- tsconfig.json
`-- typings.json

这是我的 system.config.js 文件:

(function (global) {
System.config({
// DEMO ONLY! REAL CODE SHOULD NOT TRANSPILE IN THE BROWSER
transpiler: 'ts',
typescriptOptions: {
tsconfig: true
},
meta: {
'typescript': {
"exports": "ts"
}
},
paths: {
// paths serve as alias
'npm:': 'node_module'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'main-app',

// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
'@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js',

// other libraries
'ng2-file-upload' : 'npm:ng2-file-upload',
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
'ts': 'npm:plugin-typescript@4.0.10/lib/plugin.js',
'typescript': 'npm:typescript@2.0.2/lib/typescript.js',

},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
main: './main.ts',
defaultExtension: 'ts'
},
rxjs: {
defaultExtension: 'js'
},
'angular-in-memory-web-api': {
main: './index.js',
defaultExtension: 'js'
},
'ng2-file-upload':{
main: 'ng2-file-upload.js',
defaultExtension: 'js'
}
}
});
})(this);

最佳答案

我使用 webpack 解决了这个问题。我的 webpack 制作了一个包含所有 .js .ts .html 文件的 bundle.js 并将其转换为 bundle.js。我在 Index.html 中导入。这个 bundle.js 包含它运行所需的所有东西。我的网站需要的其他东西,如 style.css 和一些 Bootstrap 库必须在外部包含在 index.html 中。您需要遵循的步骤是:

  1. 在 dev-dependency 的 package.json 中包含 "compression-webpack-plugin": "^0.3.2"包
  2. 在使用 webpack 时,还有几件事需要牢记。您需要使用正确的语法在 componenet 中导入您的模板,并且路由几乎没有变化。
  3. 我也更改了 package.json 中的构建脚本。添加了 webpack 工作的代码

    "build": "npm run tsc && npm run clean && mkdir _dist && webpack --devtool inline-source-map",

  4. 您需要配置您的 webpack。 webpack.config.js 包含我所做的所有配置,它看起来像这样。

var webpack = require("webpack");
var CompressionPlugin = require("compression-webpack-plugin");
module.exports = {
entry: {
"app": "./app/main"
},
output: {
path: __dirname,
filename: "./_dist/bundle.js",
publicPath: 'http://localhost:4242/app'
},
resolve: {
extensions: ['', '.js', '.ts', '.html']
},
devtool: 'source-map',
module: {
loaders: [
{
test: /\.ts$/,
loaders: ['awesome-typescript-loader', 'angular2-template-loader']
},
{
test: /\.html$/,
loader: 'html'
}
]
},
htmlLoader: {
minimize: false
},
plugins: [
new webpack.NoErrorsPlugin(),
],
devServer: {
historyApiFallback: true,
stats: 'minimal',
inline: true,
port: 4242
}
}

关于angular - 如何在不使用 CLI 的情况下部署 Angular2 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40302482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com