在webpack的js文件中导入moment.js

在我的项目中,我使用webpack和npm。 我安装了moment.js: npm install moment 。 然后我想在我的app.js文件中导入它: import moment from "moment"

但它不起作用。 我得到: 无法解决的时刻…

我试着let moment = require('moment'); 但我得到同样的错误。

但我可以在我的webpack.config.js文件没有错误要求。

我的app.js文件位于/myapp/frontend/app.js

我的webpack.config.js文件位于: /myapp/webpack.config.js

所以,请解释为什么我不能在我的app.js中需要时刻,我该怎么做?

我的configuration文件:

 const webpack = require("webpack"); const NODE_ENV = process.env.NODE_ENV || "development" const path = require('path'); //example of successfull importing let moment = require('moment'); console.log(moment(new Date())); module.exports = { context: __dirname + "/frontend", entry: { app:"./app" }, output: { path: path.resolve(__dirname,"./public/js"), publicPath:"/public/js/",//public path in internet filename: "build.js" }, watch: NODE_ENV == "development", watchOptions:{ aggregateTimeout:100//default = 300 }, devtool: NODE_ENV == "development"?"cheap-inline-module-source-map":"cheap-source-map", //cheap-inline-module-source-map - to see sources in build.js //eval - fastest resolve:{ modules: ['node-modules'], extensions:['.js'] }, module:{ loaders:[{ test: /\.js$/, loader:"babel-loader?presets[]=es2015", exclude: /node_modules/ }] } }; if(NODE_ENV == "production"){ module.exports.plugins.push( new webpack.optimize.UglifyJsPlugin({ compress:{ warnings:false, unsafe:true, drop_console:true } }) ); } 

这是我的树结构没有node_modules文件夹:

这是我的树结构没有node_modules文件夹

解决问题 :问题出在我的configuration上:

  resolve:{ modules: ['node-modules'], extensions:['.js'] }, 

node-modules是错误的,必须是node_modules 。 简单的错字

不知道更多关于你的文件结构,很难确定为什么,但问题可能是你的webpackconfiguration没有find你的node_modules中的时刻模块。

作为一个testing,运行以下内容:

 //webpack.js const path = require('path'); module.exports = { entry: path.join(__dirname, '..', 'public', 'js', 'index.js'), output: { filename: 'app.js', path: path.resolve(__dirname, '..', 'public', 'dist'), }, }; 

然后用时刻和jquery通过npm install --save jquery moment ,我做了一个index.js文件:

 import $ from jquery; import moment from moment; const m = moment(); 

包含在HTML页面中时没有生成错误和运行时错误。 首先尝试开始,然后从你的webpackconfiguration上build立起来。 另外,我不确定webpack是否对package.json执行了任何操作,但是我注意到你并没有发出信号–save选项。 这是一个很好的习惯。