如何改变Angular Cli捆绑路径?

时间:2017-04-13 09:08:27

标签: angular webpack angular-cli

在我的index.html中构建我的应用程序后,文件引用如下所示,

<script type="text/javascript" src="inline.c15b1b72bcd63b7c92ca.bundle.js"></script>

(例如我仅针对此文件显示)。

因为,我必须在服务器“xyzwebsite.com/app”中运行我的应用程序。

我需要将捆绑的文件复制到“app”文件夹,但是当我尝试这样做时,我发现 404 not found 错误。

我是Angular cli的新手,并捆绑了应用程序和所有这些特技!我该如何解决这个问题?

提前致谢!

3 个答案:

答案 0 :(得分:5)

ng build - base-href / app /

起初我预计更改index.html中的基本标记会起到作用:   但是在构建之后它似乎被设置为默认值(/),除非你添加上面提到的选项

答案 1 :(得分:4)

使用webpack.config.js

如果您想要更多控制权来使用webpack.config.js文件而不是.angular-cli.json文件来更改包路径,那么请执行此操作。

1. Run `ng eject`

此命令将在根目录中公开webpack.config.js文件。您可以配置该文件。

2. Run `npm install`

由于npm eject会添加与加载器相关的新依赖项,因此需要安装这些依赖项,可以使用上面的命令完成。

3. "output": {
    "path": path.join(process.cwd(), "dist"),
    "filename": "scripts/[name].[chunkhash:20].bundle.js",
    "chunkFilename": "scripts/[id].[chunkhash:20].chunk.js"
  }

webpack.config.js文件编辑输出条目中,为JS文件添加所需的目录名,如上所示。使用它,您可以控制捆绑路径。

我希望这会有所帮助!

答案 2 :(得分:2)

根据official documentation,您只需指定rootoutdir参数即可定义文件的位置。只需将它们设置到您的/ app目录即可。

在我看来,不得不将生成的文件移动到其他地方似乎不是一个好主意,更好的方法是直接在正确的位置生成它们。