我相信这是我见过的最干净的方法。
我们实际上是要覆盖 ionic 构建脚本的复制部分。他们创建了构建脚本来鼓励这一点并使其变得简单。
假设您已经使用 npm 安装了您需要的任何库:
npm install chart.js --save
(将 chart.js 库安装到项目根目录下的 node_packages 文件夹中)
查看 /node_modules/@ionic/app-scripts/config/copy.config.js。这是我们要覆盖的内容,因此将其内容复制到 /config/copy.config.js 的文件中(您需要创建 /config 文件夹)。
module.exports = {
include: [
{
src: '{{SRC}}/assets/',
dest: '{{WWW}}/assets/'
},
{
src: '{{SRC}}/index.html',
dest: '{{WWW}}/index.html'
},
{
src: '{{SRC}}/manifest.json',
dest: '{{WWW}}/manifest.json'
},
{
src: '{{SRC}}/service-worker.js',
dest: '{{WWW}}/service-worker.js'
},
{
src: 'node_modules/ionic-angular/polyfills/polyfills.js',
dest: '{{BUILD}}/polyfills.js'
},
{
src: 'node_modules/ionicons/dist/fonts/',
dest: '{{WWW}}/assets/fonts/'
},
{
src: './node_modules/chart.js/dist/Chart.bundle.min.js',
dest: '{{BUILD}}/Chart.bundle.min.js'
},
]
};
最后一部分是我们添加的部分,将 chart.js 文件复制到实际会被拉入构建的位置。
要使用我们的脚本,需要告知 package.json,因此将这个“config”部分添加到您的 /package.json 文件中:
"config": {
"ionic_copy": "./config/copy.config.js"
},
现在,当您构建时,文件将被复制,并且在第一个完成后显然更容易添加更多。您还可以覆盖离子构建过程的其他部分,值得研究。
https://ionicframework.com/docs/v2/resources/app-scripts/
现在您可以轻松调用它,一个选项在 index.html 中:
<script src="build/Chart.bundle.min.js"></script>
好处是,如果您安装了模块更新,更改的文件将在您的构建中得到更新,而且,一切都可以通过 vcs 和设置新环境轻松解决,因为依赖项由 npm 和我们的脚本扩展处理照顾一切。 :-)
希望对您有所帮助! :-)