如何在npm install中包含样式表和javascripts

Wyl*_*udd 10 html javascript css fullcalendar npm-install

这种感觉非常基本,没有人愿意解释它.我正在尝试在我的应用程序中使用fullcalendar库.在Basic Usage下的文档中,我发现了这个:

在网页上嵌入日历的第一步是拥有正确的JavaScript和CSS文件.确保在页面中包含FullCalendar样式表,以及FullCalendar,jQuery和Moment JavaScript文件:

<link rel='stylesheet' href='fullcalendar/fullcalendar.css' />
<script src='lib/jquery.min.js'></script>
<script src='lib/moment.min.js'></script>
<script src='fullcalendar/fullcalendar.js'></script>
Run Code Online (Sandbox Code Playgroud)

在下载中,它说:

您可以通过NPM安装FullCalendar:

$ npm install fullcalendar

我不明白的是,我在哪里可以找到包含的fullcalendar.css,jquery.min.js,moment.min.js和fullcalendar.js文件?NPM安装不会将文件夹下载到我可以拖入我的项目的下载文件夹中,它会将文件添加到我的node_modules文件夹中,我怀疑我应该在那里搜索文件(我的node_modules文件夹有数千个其中的文件夹).我尝试使用webpack捆绑js文件,认为它可能会自动将它们包含在捆绑包中,但这不起作用.我错过了什么?

Wyl*_*udd 5

如果您使用 Webpack,则不需要在标题中包含任何脚本标记或样式表链接,如下所示webpack.config.js

module.exports = {
  entry: "./calendar.js",
  output: { filename: "bundle.js" },
  module: {
    loaders: [
      {
        test: [/.js?$/],
        exclude: /node_modules/,
        loader: 'babel',
        query: {
          presets: ['es2015']
        }
      },
      {
        test: /\.css$/,
        loader: 'style-loader!css-loader'
      }
    ]
  }
};
Run Code Online (Sandbox Code Playgroud)

而你需要npm install babel。如果你也希望 Webpack 为你处理你的 CSS 文件,你可以npm install style-loadercss-loader. 这是我的package.json

{
  "name": "full_calendar_demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "babel-core": "^6.18.2",
    "babel-loader": "^6.2.8",
    "babel-preset-es2015": "^6.18.0",
    "css-loader": "^0.26.1",
    "fullcalendar": "^3.1.0",
    "jquery": "^3.1.1",
    "moment": "^2.17.1",
    "style-loader": "^0.13.1",
    "webpack": "^1.13.3"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
Run Code Online (Sandbox Code Playgroud)

然后我的index.html文件不需要脚本标签:

{
  "name": "full_calendar_demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "babel-core": "^6.18.2",
    "babel-loader": "^6.2.8",
    "babel-preset-es2015": "^6.18.0",
    "css-loader": "^0.26.1",
    "fullcalendar": "^3.1.0",
    "jquery": "^3.1.1",
    "moment": "^2.17.1",
    "style-loader": "^0.13.1",
    "webpack": "^1.13.3"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
Run Code Online (Sandbox Code Playgroud)

我只是在我的 JavaScript 文件中包含这些包:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <script src='bundle.js'></script>
  </head>
  <body>
    <div id="calendar"></div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我仍在寻找一种方法来清理我导入 CSS 文件的方式,但至少我没有像这样的 HTML 文件:

import $ from 'jquery'
import 'fullcalendar'
import 'fullcalendar/dist/fullcalendar.css'

$(document).ready(() => {
  $('#calendar').fullCalendar()
})
Run Code Online (Sandbox Code Playgroud)

请让我知道如何更干净地包含 CSS 文件。