如何在手表模式下为angular elements应用程序提供服务?

如何在手表模式下为angular elements应用程序提供服务?,angular,angular-elements,Angular,Angular Elements,我已经成功地创建了一个Angle Elements应用程序 “服务”过程包括: 将应用程序和concat构建到单个js文件中ng Build--prod--output hashing=none&&cat dist/tamigo calendar/{runtime,polyfills,scripts,main}.js>/plainHTML/ship.js 现在提供一个包含自定义元素的HTML文件。在这种情况下,lite服务器 但是每次我对自定义元素进行更改时,如果不想看到它更新,我需要重新运行构

我已经成功地创建了一个Angle Elements应用程序

“服务”过程包括:

  • 将应用程序和concat构建到单个js文件中
    ng Build--prod--output hashing=none&&cat dist/tamigo calendar/{runtime,polyfills,scripts,main}.js>/plainHTML/ship.js
  • 现在提供一个包含自定义元素的HTML文件。在这种情况下,
    lite服务器
  • 但是每次我对自定义元素进行更改时,如果不想看到它更新,我需要重新运行构建脚本。所以我的问题是,我怎样才能在监视模式下构建它

    my
    package.json的相关部分如下所示:

    "buildForShip": "ng build --prod --output-hashing=none && cat dist/tamigo-calendar/{runtime,polyfills,scripts,main}.js > ./plainHTML/ship.js",
    "plainHTML": "lite-server"
    "start": "npm run -s buildForShip && npm run -s plainHTML"
    
    "plainHTML": "lite-server --watch"
    

    在本文之后,您可能已经在
    package.json
    文件的
    scripts
    对象中添加了一个名为
    plainHTML
    的脚本。您只需在其后面添加
    --watch

    大概是这样的:

    "buildForShip": "ng build --prod --output-hashing=none && cat dist/tamigo-calendar/{runtime,polyfills,scripts,main}.js > ./plainHTML/ship.js",
    "plainHTML": "lite-server"
    "start": "npm run -s buildForShip && npm run -s plainHTML"
    
    "plainHTML": "lite-server --watch"
    
    这将在监视模式下运行服务器,并查找文件更改

    此外,由于您的文件将在生成后生成,您还可以在
    ng build
    中使用
    --watch
    来查看
    buildForShip
    脚本:

    "buildForShip": "ng build --prod --watch --output-hashing=none && cat dist/tamigo-calendar/{runtime,polyfills,scripts,main}.js > ./plainHTML/ship.js",
    

    请添加您的package.json的脚本对象。您可以为
    ng serve
    添加
    watch
    选项,而不是为
    ng build
    @添加选项。这是不正确的-您可以在watch模式下运行build。检查一下:但是
    ship.js
    文件只在运行build命令时更新,因此如果您尝试运行
    ng build-in--watch
    模式,则无法正常工作?是的,这样就可以了。但是我还需要将文件合并成一个文件,就像在构建脚本中指定的那样(
    &&cat dist/tamigo calendar/{runtime,polyfills,scripts,main}.js>/plainHTML/ship.js
    ),否则lite服务器将无法接收它